1

我有一个 UIViewController,它的对象在出现时在后台线程上执行一系列任务,并且它被注册为它们的观察者。当他们第一次被调用时,它就不再是观察者了。

我意识到如果在显示视图控制器之前执行这些任务可以节省用户时间,因此我对其进行了初始化并调用了一个运行这些任务的方法。

然后我开始收到以下错误:

An instance [insance] of class [class name] was deallocated while key value observers were still registered with it.

我怎样才能防止这种情况发生?如果我立即显示视图控制器,这没有问题。

4

1 回答 1

2

我建议您在那些打算用作观察者的类的方法 dealloc 中添加一个调用 [notificationCenter removeObserver: self],因为这是彻底取消注册观察者的最后机会。

于 2013-07-02T07:08:29.003 回答