KVO的两个对象都必须移除
今天在使用KVO的时候,希望做到一个View监听superView是否产生变化,然后触发函数,使用以下KVO
1 |
|
发现会报错KVO错误的释放,原因是因为
self.superView 的 dealloc 产生在self的dealloc之前,也就是当调用dealloc函数时,self.superView 已经不存在了
所以会产生KVO释放的错误,如果在 [self.superView dealloc] 里进行remove则不会报错,所以说KVO对象移除时,一定要保证 Observer 在其监听的对象释放之前被移除