0
点赞
收藏
分享

微信扫一扫

iOS weak操作原理

奋斗De奶爸 2021-09-19 阅读 32
日记本

id __weak obj1 =  obj;

以上代码会被编译成:
id obj1;
objc_initweak(&obj1,obj)
objc_destroyWeak(&obj1)

objc_initweak会将被引用对象作为值引用对象的地址作为键注册到weak表中,所有的weak变量都会被注册到这个weak表中,weak表与引用计数表相同,都是作为散列表而实现,由于一个对象可同时赋值给多个有__weak修饰的变量,因此,在weak表中一个值可被不同的弱引用地址注册到weak表中

举报

相关推荐

0 条评论