q1992077

Results 2 comments of q1992077

@dynamic 语义是让编译器不生成对应的setter , getter , ivar 。仅提供setter & getter 的方法声明。效果类似于protocol中声明的property 。

> > 建议看看weak表的数据结构和实现,key值是对象地址,value 是weak指针地址没错。value值不会无缘无故变为nil的,只有当对象引用计数为0,调用dealloc析构,最后调用objc_clear_deallocating 函数,通过对象地址在weak表中获取value值,也就是所有的weak指针,赋值为 nil。 > > 在多个`__weak`的情况下,这个`value`是不是可以理解为 数组结构呢? 如果一个对象被超过4根弱引用指针指向时,weak表存的是弱指针的哈希表。相当于: weakTable: { key(&b) : @{ &a : 1, &a2 : 1, &a3 : 1, &a4 : 1, ...} ......