我读过很多关于为 NSNotificationCenter 调用 .removeObserver 的正确位置的建议,因为 viewDidUnload 不是一个选项。
我只是想知道 Swift 中新的 deinit() 是否是一个不错的选择?
-nick
这实际上取决于您订阅 NSNotificationCenter 通知的类的角色。如果您订阅:
UIView
然后,一旦视图对用户不可见,您就应该取消订阅。当用户看不到视图时节省 CPU 周期并且不消耗资源。
UI视图控制器
这里它还取决于您要响应通知而执行的操作类型。如果这只是 UI 调整,您应该在视图控制器从屏幕上消失后立即取消订阅。
你的应用服务层
这里可以有.removeObserver
在 deinit() 内。然而,即使在这里,我还是建议您更明确地说明何时订阅和取消订阅NSNotificationCenter
通知并将它们放入服务的启动和停止方法中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)