The gods have parachuted many habits into my isolated jungle village, such as:
- (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; [super dealloc]; }
Their ways are strange to me, yet I still seek to understand them.
Why bother cleaning loose ends up if the instance is going away? Will the reference/retain count to that instance not be decremented? Will it clutter some sort of Notification Hash Table lurking out there that holds a list of all the listeners?
NSNotificationCenter
doesn't retain observers. If you don't remove the observer, and the observer is deallocated, then NSNotificationCenter
is left holding a dangling pointer which will (most often) crash when it next tries to notify the observer.
Although in practice many of your uninitiated younglings will get away without following the rites, because it has pleased St. Jobs to bestow a removeObserver
incantation upon many of your super classes. Such as UINavigationController
. Although this is not found in any the Writings I have found this to be true.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With