自动引用计数器(五)-strong与weak

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxingaiwo/article/details/81175380

首先这里是一片比较基础的博客:https://blog.csdn.net/u012046379/article/details/50838777
我在这里再补充几句。
对象被废弃时候会进行一下几步操作:
(1)从weak表中获取废弃对象的地址为键值的记录。
(2)将包含在记录中的所有__weak修饰符变量的地址,赋值为nil。
(3)从weak表中删除记录。
(4)从引用计数器表中删除废弃对象的地址为键值的记录。
由上述过程可知,如果有大量附有__weak修饰符的变量,最会消耗相应的cpu资源。良策是只在需要避免循环引用时候使用__weak修饰符。
再比如:
这里写图片描述
相应地,变量o所赋值的对象也就注册到autoreleasepool中5次。
解决方法就是:
这里写图片描述
在“temp=0”时候对象仅登录到autoreleasepool中1次。

猜你喜欢

转载自blog.csdn.net/xiaoxingaiwo/article/details/81175380