今天在复习代码试着自己写的时候,用了下kvo,写完后,运行程序发现程序崩了,一开始没想到时kvo的原因,定位也没定位到崩溃信息处,于是找了一会,大概想了一下原因,也就是写了kvo后发现程序崩溃的,于是想到可能是kvo的问题,上网一查关于kvo崩溃的问题,果然有啊,原因就是在我们添加观察者的时候,观察者和被观察者都不会被retain,然而在这些对象释放后,监听信息却还在,KVO做的处理就是直接让程序崩溃,解决办法就是重写delloc,在delloc里面用removeObserver:forKeyPath:方法移除观察者
类似的移除还有通知,一般面试也会问,注册通知也要移除相关的通知,否则,通知会发送多次
参考链接:http://southpeak.github.io/blog/2015/04/23/nskeyvalueobserving-kvo/
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/rainshenji/article/details/47109305