我有一个UIViewController,它有对象在后台线程上执行一系列任务,并且它被注册为观察者。当他们第一次被召唤时,它就不再是观察者了。
我意识到如果在显示视图控制器之前执行了这些任务,我可以节省用户时间,所以我初始化它并调用了一个运行这些任务的方法。
然后我开始犯错:
An instance [insance] of class [class name] was deallocated while key value observers were still registered with it.
如何防止这种情况发生?如果我立即显示视图控制器,这没有问题。
答案 0 :(得分:2)
我建议您在这些类的方法dealloc中添加一个调用[notificationCenter removeObserver:self],您打算将其用作观察者,因为这是彻底取消注册观察者的最后机会。