Where should I remove the observer for NSNotification
in Swift, since viewDidUnload
and dealloc()
are unavailable?
Swift provides a deinit method that is called on instances of classes before they are destroyed.
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Deinitialization.html
Use below method which functions same as dealloc
.
deinit {
// Release all resources
// perform the deinitialization
}
A deinitializer is called immediately before a class instance is deallocated. You write deinitializers with the deinit keyword, similar to how intializers are written with the init keyword. Deinitializers are only available on class types.
Swift Deinitializer
In Swift 4.2, this is one of the way you can remove observer
deinit {
NotificationCenter.default.removeObserver(self, name: Notification.Name.Identifier, object: nil)
}
setup addObserver notification in viewDidLoad class
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(didReceivedItemDetail), name: Notification.Name.Identifier, object: nil)
}