addObserver/removeObserver in viewWillAppear/viewWillDisappe



我在ViewWillAppear中调用AddObserver,然后在ViewWillDisAppear中删除Overobserver。似乎工作正常。但是,在Xcode崩溃日志中,我收到的报告说,当我调用removeObserver时,某些客户崩溃(昨天21次崩溃...)。我没有任何客户报告他们崩溃了,所以我认为这是相对间歇性的。

我读了一个建议,将removeobserver调用封装在 @try/@catch块中,我可能会诉诸于此,但是我很好奇为什么我的RemoveObserver失败了。我认为这是因为(某种程度上)未添加通知。(还有其他原因吗?我是iOS新手,新手是崩溃日志...)

fwiw,我只从一个ViewWillAppear调用AddObserver,然后将其删除在一个ViewWillDisAppear中。我试图复制问题,并且从未看到(在nslog消息中)一个呼叫viewwilldisappear,而没有首先被称为viewwillappear。

谢谢!

在ViewWillAppear中调用AddObserver,通过呼叫删除viewwilldisappear中删除Observer的平衡。

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

尝试在viewDidDissapeared中删除观察者。您可能会在视图控制器生命周期中遇到问题。

最新更新