当weak引用指向的对象被释放时,又是如何去处理weak指针的呢
作者:
充满活力的早晨 | 来源:发表于
2018-04-09 17:48 被阅读31次1、调用objc_release
2、因为对象的引用计数为0,所以执行dealloc
3、在dealloc中,调用了_objc_rootDealloc函数
4、在_objc_rootDealloc中,调用了object_dispose函数
5、调用objc_destructInstance
6、最后调用objc_clear_deallocating,详细过程如下:
a. 从weak表中获取废弃对象的地址为键值的记录
b. 将包含在记录中的所有附有 weak修饰符变量的地址,赋值为 nil
c. 将weak表中该记录删除
d. 从引用计数表中删除废弃对象的地址为键值的记录
[摘自文章](https://mp.weixin.qq.com/s?__biz=MzUxODI3MjY2Ng==&mid=2247484668&idx=1&sn=f955f9c90c3705dcd00128ecd8e28c6a&chksm=f98a2709cefdae1f451857a6956a26fea8effa968f7815595942dff1c2d23035f8ad34bb1e53&scene=38#wechat_redirect)
本文标题:当weak引用指向的对象被释放时,又是如何去处理weak指针的呢
本文链接:https://www.haomeiwen.com/subject/lpnihftx.html
网友评论