3

我可以使用说明符在堆栈上指定一个变量__block,然后我可以在一个块中修改它。我只是想知道,幕后发生了什么?(如果该块在将来的某个时间执行,那么堆栈可能会被清除)

4

1 回答 1

4

当一个引用__block变量的块被复制时,该变量被移动到堆中。这意味着所有引用它的代码都必须通过间接的方式,基本上是一个指针,以便当它从堆栈移动到堆时,这些引用可以随之切换。

在此处记录。

于 2012-04-22T12:54:57.753 回答