【问题标题】:How does the __block specifier work?__block 说明符如何工作?
【发布时间】:2012-04-22 12:04:19
【问题描述】:

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

【问题讨论】:

    标签: objective-c cocoa-touch objective-c-blocks


    【解决方案1】:

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

    这已记录在here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      相关资源
      最近更新 更多