为什么xcode会给我一个错误:“返回生活在本地堆栈上的块”?

时间:2016-09-13 10:11:04

标签: ios objective-c-blocks

code

我无法理解为什么xcode会在ARC中显示错误。 在ARC中,为什么块自动复制?

1 个答案:

答案 0 :(得分:0)

块位于范围内。只有该范围仍处于活动状态或复制时,它才有效。复制后,副本将永久有效复制块与保留它不同,这就是Xcode为您提供错误而不是ARC为您执行此操作的原因。 "为什么没有块复制本身"是一个完全无关紧要的问题 - 它不是,而且那就是问题。你必须自己复制它。

这就是你制作街区属性的原因" copy"。将块传递给gcd没有问题,因为gcd会在需要时复制块。