ios - 在最新的 SDK 中使用自动释放池,是否有必要,甚至有益,删除通知?

标签 ios objective-c

我正在使用一些 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/

相关文章:

ios - 如何在 iOS 中设置提醒消息的可访问性标签?

ios - 由于 "Launch storyboard not found"(ERROR ITMS-90705),无法将项目上传到 App Store

ios - GLM数学库是否与Apple的 Metal 着色语言兼容?

objective-c - 运行时无法识别 Objective-C 框架中的 Swift 类别

iphone - 如何使用 objective-c 库连接到 iPhone 上的 RTSP h.264 流

ios - 调用 allKeys 时无法识别的选择器

iphone - 自定义按钮显示在模拟器上,但不显示在iPhone设备中

iphone - 应用程序因音频流超过 5MB/5 分钟而被拒绝?可达性和跟踪数据使用情况

ios - 如何在 iOS (Swift 3) 上断开 Firebase 通知?

ios - 子文件夹中的资源未包含在 ipa 中