【发布时间】:2015-03-17 23:39:10
【问题描述】:
我想在需要时将函数用作另一个函数的完成。但我有一个问题,最好用代码来描述:
...{
var myCompletion : (() -> Void)? = nil
if condition {
myCompletion = myCompletionFunction() // <==========problem here
}
someMethodThatCouldHaveCompletion(myCompletion)
...
}
func someMethodThatCouldHaveCompletion(completion: (() -> Void)?){
...
}
func myCompletionFunction() {
...
}
我有一个错误:Cannot assign a value of type '()' to a value of type '(()->Void)?'
我尝试在将函数设置为 myCompletion 变量后添加as! (() -> Void)?,但收到另一个错误Cannot downcast from '()' to a more optional type '(()->Void)?'
那么,有没有办法解决呢?我有一种感觉,我想念completion: (() -> Void)? 类型的东西。
【问题讨论】:
-
你需要myCompletionFunction后面的()吗?您不是将函数分配给 myCompletion 而不是返回值吗?
标签: ios function swift variables optional-parameters