weak属性的实现原理

首先了解weak是一种非拥有关系,属性所指的对象销毁时,属性值会自动置为nil

weak是Runtime维护了一个hash(哈希)表,用于存储指向某个对象的所有weak指针。weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是所指对象的所有weak指针的地址数组。

当对象引用计数为0 dealloc时,会将weak属性值自动置nil。

posted @ 2019-03-15 14:18  黄增松  阅读(554)  评论(0编辑  收藏  举报