KVO底层原理
涉及到了runtime,关于isa指针
1、当一个类(A)的属性被观察的时候,系统会通过runtime动态的创建一个A类的派生类(B)
2、B类继承于A类
3、将A类的isa指针指向B类
4、在B类中重写被观察的属性的setter方法
5、重写的setter方法会在调用原setter方法前后,通知观察对象值得改变
![](https://img.haomeiwen.com/i1116317/1adcbbd7512a60d6.jpg)
引用 http://blog.csdn.net/yangyangzhang1990/article/details/52945701
内存管理
两张表 一张引用计数表
一张引用地址表
引用计数表保存 引用计数数值、是否有若引用
引用地址表保存 引用地址列表(弱引用地址列表)
当对象将要销毁时 判断是否有弱引用,有弱引用遍历弱引用地址列表置为nil 执行销毁操作
引用 http://www.jianshu.com/p/ef6d9bf8fe59
网友评论