我经常使用Objective-C中的局部范围,使命名更清晰。
{ UILabel *label = [[UILabel alloc] init]; [self addSubview:label]; self.titleLabel = label; }
我试图重写这个代码在Swift像这样:
{ let label = UILabel() self.addSubview(label) self.titleLabel = label }
这给我得到以下错误:
错误:支撑语句块是一个未使用的闭包。
那么如何在Swift中创建一个局部作用域呢?
更新:在Swift 2.0中,您只需使用do关键字:
do { let label = UILabel() self.addSubview(label) self.titleLabel = label }
这在Swift 2.0之前是正确的:
你可以定义类似这样的东西:
func locally(@noescape work: () -> ()) { work() }
然后使用这样的本地块如下:
locally { let g = 42 println(g) }
(受Scala的Predef对象本地启发。)