我可以使用说明符在堆栈上指定一个变量__block
,然后我可以在一个块中修改它。我只是想知道,幕后发生了什么?(如果该块在将来的某个时间执行,那么堆栈可能会被清除)
问问题
1239 次
1 回答
4
当一个引用__block
变量的块被复制时,该变量被移动到堆中。这意味着所有引用它的代码都必须通过间接的方式,基本上是一个指针,以便当它从堆栈移动到堆时,这些引用可以随之切换。
这在此处记录。
于 2012-04-22T12:54:57.753 回答