首页 > 代码库 > 移除通知的时机

移除通知的时机

链接

结论

最好是在不需要的时候就移除掉。
如果不是特别苛刻,可以直接在dealloc函数里写。因为dealloc函数一定会被调用的。

dealloc函数中移除的可能问题

由于deallocRunloop结束时会被调用。如果在Runloop调用之前,又有一个通知到来,会造成不可预知的问题。
比如一个VC被pop出去以后,由于网络延迟等原因,在同一个Runloop中,一个通知又被抛出,那么这个被pop的VC会接收到这个通知。如果响应通知的函数对APP内的单例做了操作,那么这个单例的状态就不对了。

iOS9以后不需要在dealloc中移除通知了

技术分享?
忘记移除观察者,是很过crash发生的原因。

移除通知的时机