我正在使用一些 Objective-C 代码,我想知道..我注意到,在学习 NSNotificationCenter 时,在 dealloc 上删除 NSNotificationCenter 观察者通常是一种好习惯。但是,在使用自动释放池的情况下 - 是否已处理好,还是我仍然需要一个 dealloc 方法?
- (void) dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self name:XBPageCurlViewDidSnapToPointNotification object:nil];
}
提前致谢!
最佳答案
无论如何,您都需要注意删除在该类实例的生命周期内添加的观察者。
如果该通知确实被触发,它将尝试调用您的实例。如果该实例变得无效(例如由于解除分配),您的应用程序将崩溃。
根据经验,UIKit 本身不使用 ARC(通常有异常(exception)),因此不会坚持弱引用。
关于ios - 在最新的 SDK 中使用自动释放池,是否有必要,甚至有益,删除通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15424078/