arc环境下的dealloc做的几件事情

2019-05-06  本文已影响0人  guoguojianshu

1.清除实例变量

在runtime中使用的是这个函数.cxx_desctruct

2.清空关联属性

执行object_remove_assocations去除和这个对象assocate的对象(常用于category中添加带变量的属性,这也是为什么ARC下没必要remove一遍的原因 (Edit: 在ARC或MRC下都不需要remove)

3.清空引用计数表和弱引用的表

执行objc_clear_deallocating,清空引用计数表并清除弱引用表,将所有weak引用指nil(这也就是weak变量能安全置空的所在)

4.编译器自动插入[super dealloc]方法

上一篇下一篇

猜你喜欢

热点阅读