2016-12-24 43 views
2

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

我读了一个建议,在@ try/@ catch块中封装removeObserver调用,我可能会采用,但我很好奇为什么我的removeObserver失败。我认为这是因为(不知何故)通知没有被添加。 (是否有其他原因?我是iOS新手,并且是新的崩溃日志...)

FWIW,我只从一个viewWillAppear调用addObserver,并在一个视图中将其删除将会消失。我试图复制这个问题,并且永远不会看到(在NSLog消息中)调用viewWillDisappear,而不是首先调用viewWillAppear。

谢谢!

回答

0

在viewWillAppear中调用addObserver,通过调用viewWillDisappear中的removeObserver来平衡应该工作。

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

0

试着移除你在viewDidDissapeared的观察者。您可能在视图控制器生命周期中遇到问题。