【发布时间】:2013-02-01 09:45:26
【问题描述】:
我正在过渡到 ARC(自动引用计数),这份文档非常有帮助:Transitioning to ARC Release Notes。它说:
块在 ARC 中是如何工作的?
当您在 ARC 模式下将块向上传递到堆栈时,块“正常工作”,例如在返回中。您不必再调用 Block Copy。在将堆栈“向下”传递到 arrayWithObjects: 和其他执行保留的方法时,您仍然需要使用 [^{} copy]。
有人可以详细说明一下或举一些例子吗?我理解这意味着通常我不需要再做 [block copy] 即使块在声明的范围之外使用,因为 ARC 现在会更聪明地处理它,但是当我想要复制它时我仍然需要复制它将块传递给保留它的函数。这是正确的吗?
实际上,我已经对其进行了一些试验,到目前为止,即使我将块传递给数组而不进行复制,它似乎也可以,所以这个问题。谢谢!
【问题讨论】:
标签: objective-c automatic-ref-counting objective-c-blocks