ios - 在 viewWillAppear/viewWillDisappear 中添加观察者/移除观察者

标签 ios nsnotificationcenter addobserver

我在 viewWillAppear 中调用 addObserver,在 viewWillDisappear 中调用 removeObserver。它似乎 工作正常。但是,在 Xcode 崩溃日志中,我收到一些报告称,当我调用 removeObserver 时,一些客户崩溃了(昨天发生了 21 次崩溃......)。我没有收到任何客户报告说他们崩溃了,所以我认为这是相对间歇性的。

我阅读了将 removeObserver 调用封装在 @try/@catch block 中的建议,我可能会求助于此,但我很好奇为什么我的 removeObserver 失败了。我认为这是因为(不知何故)没有添加通知。 (还有其他原因吗?我是 iOS 新手,刚接触崩溃日志...)

FWIW,我只从一个 viewWillAppear 调用 addObserver,并在一个 viewWillDisappear 中将其删除。我试图重现这个问题,但从未看到(在 NSLog 消息中)在没有首先调用 viewWillAppear 的情况下调用 viewWillDisappear。

谢谢!

最佳答案

在 viewWillAppear 中调用 addObserver,通过在 viewWillDisappear 中调用 removeObserver 进行平衡应该可行。

您是否在 viewWillAppear 中添加多个单独的观察者,然后在 viewWillDisappear 中移除所有观察者?最好按名称删除个别观察者,因为系统也可能会使用通知中心。

关于ios - 在 viewWillAppear/viewWillDisappear 中添加观察者/移除观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41316575/

相关文章:

ios - 尝试在已呈现 SecondViewController 的 ViewController 上呈现 GADNFullScreenAdViewController

html - @2x 视网膜图像不适用于 iOS7

swift - 文本字段帧动画与键盘动画持续时间不同步

iphone - 在 UITableViewCell 的 subview 上添加单击和双击手势

ios - 无法使用 HanekeSwift 删除图像缓存条目

ios - 通知中心值第一次、第二次没有更新

ios - 出现键盘时尝试移动 View - 一些错误

ios - 自己添加观察者

iphone - 调用addObserver和removeObserver方法的可能位置