【发布时间】:2013-03-17 18:28:27
【问题描述】:
在阅读了这个帖子Handling Pointer-to-Pointer Ownership Issues in ARC的答案后,我有一些问题;
对于演示 1,当传递对“强”属性变量的引用时,会隐式创建一个 hidden(__autoreleasing) 变量,并且不会保留该对象。 但是对于演示 4,当传递对“弱”属性变量的引用时,该对象确实会保留一次。
所以我的问题很简单,只是我的好奇心,为什么只有从'__weak'创建的隐藏变量才能获得对象retain+1?这种模式是为任何特殊问题设计的吗?
希望我能清楚地解释我的问题,任何帮助将不胜感激。
【问题讨论】:
-
这似乎是一个有趣的问题,但您应该复制相关代码并将其直接粘贴到您的文本中,这样人们就可以理解而无需在页面之间跳转。
-
我相信弱引用在被访问时会被保留/自动释放——这可以防止它们在使用弱引用的方法中部分归零。
-
@nevan king:我试图在这里复制和粘贴,但是那里的演示 sn-ps 很长而且很乱,还有很多 cmets。无论如何感谢您的回复。
标签: ios pass-by-reference weak hidden-variables