【问题标题】:ios __weak and __autoreleasingios __weak 和 __autoreleasing
【发布时间】: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


【解决方案1】:

隐式创建了一个 hidden(__autoreleasing) 变量,并且 对象不会被保留

这不是真的。 __autoreleasing 是保留和自动释放的东西。

【讨论】:

    猜你喜欢
    • 2014-07-19
    • 2012-11-15
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多