Skip to content

Files

Latest commit

 

History

History
39 lines (22 loc) · 1.07 KB

discarded_notification_center_observer.md

File metadata and controls

39 lines (22 loc) · 1.07 KB

Pattern: Discarded NotificationCenter observer

Issue: -

Description

When registering for a notification using a block, the opaque observer that is returned should be stored so it can be removed later.

Examples of correct code:

let foo = nc.addObserver(forName: .NSSystemTimeZoneDidChange, object: nil, queue: nil) { }


let foo = nc.addObserver(forName: .NSSystemTimeZoneDidChange, object: nil, queue: nil, using: { })


func foo() -> Any {
   return nc.addObserver(forName: .NSSystemTimeZoneDidChange, object: nil, queue: nil, using: { })
}

Examples of incorrect code:

nc.addObserver(forName: .NSSystemTimeZoneDidChange, object: nil, queue: nil) { }


nc.addObserver(forName: .NSSystemTimeZoneDidChange, object: nil, queue: nil, using: { })


@discardableResult func foo() -> Any {
   return nc.addObserver(forName: .NSSystemTimeZoneDidChange, object: nil, queue: nil, using: { })
}

Further Reading