KVO监控
在使用addObserver添加KVO依赖时,观察者释放了,必须调用removeObserver,以下是官方的说明:
- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context;
在我这里的测试来看,如果不释放,在iOS8会出现crash,但iOS8以上的版本不会crash,可能是新版本iOS在内部做了容错机制
通知中心
同样的是通知中心的使用,在[NSNotificationCenter defaultCenter]执行addObserver方法后,如果是iOS9之前的版本也是需要removeObserver的。
[[NSNotificationCenter defaultCenter] removeObserver:self];
但在我的实际测试中,iOS8下,即使不removeObserver,也不会crash