【发布时间】:2011-10-28 04:45:36
【问题描述】:
Objective-C 中的 __block 关键字究竟是什么意思?我知道它允许您修改块内的变量,但我想知道...
- 它究竟告诉编译器什么?
- 它还有其他作用吗?
- 如果仅此而已,那么为什么首先需要它?
- 它在任何地方的文档中吗? (我找不到)。
【问题讨论】:
-
检查here,以及“块和变量”部分。
-
@Code Monkey:我专门询问的是关键字,而不是一般的语法。所以不要认为它真的是重复的。
-
@Code Monkey:不,这不是重复的。你提到的问题根本没有提到
__block。 -
如果有人想知道 Objective-C 的
__block应该如何转换为 Swift:”闭包 [在 Swift 中] 具有与 [在 Objective-C 中] 块相似的捕获语义,但在一个方面有所不同关键方式:变量是可变的而不是复制的。换句话说,Objective-C 中 __block 的行为是 Swift 中变量的默认行为。” 来自 Apple 的书:Using Swift with Cocoa and Objective-C (Swift 2.2)。
标签: objective-c ios objective-c-blocks