KVOController开源库bug分析

FBKVOController是一个对KVO机制简单封装的开源库,最大特点就是持有了observer与observe object及其keyPath的关系,利用delloc自动移除observer,同时提供了便捷的block方式去处理观察对象keyPath值的变化,省去了NSKeyValueObserving协议中原生API的麻烦。 看起来很棒!但,它并非完美。 问题 举个例子,当需要观察自身keyPath值变化时 使用KVO原生API在init中添加Observer,并在dealloc中移除Observer,代码如下: - (instancetype)init { self = [super init]; if (self) { [self addObserver:self »