Ras*_*sto 5 closures initialization swift
看看下面的代码
class Example {
let action: String -> ()
init() {
action = method //error: Variable self.action used before initialized
}
func method(s: String) {
println(s)
}
}
Run Code Online (Sandbox Code Playgroud)
我正在将闭包类型的属性设置为类方法。要引用类方法,我需要初始化单个属性,但要正确初始化它,我需要引用该方法。我该如何跳出循环?
我知道我可以做类似的事情
init() {
action = {_ in }
action = method //error: Variable self.action used before initialized
}
Run Code Online (Sandbox Code Playgroud)
但这并不好。
我实际需要做的事情更复杂,也更有意义,但这就是本质。
您可以将该属性声明为隐式解包可选:
let action: (String -> ())!
Run Code Online (Sandbox Code Playgroud)
这是隐式解包有用并且可以安全使用的少数情况之一。
| 归档时间: |
|
| 查看次数: |
2388 次 |
| 最近记录: |