Dim*_*lov 3 variables function optional-parameters ios swift
我想在需要时使用函数作为另一个函数的完成.但是我遇到了最好用代码描述的麻烦:
...{
var myCompletion : (() -> Void)? = nil
if condition {
myCompletion = myCompletionFunction() // <==========problem here
}
someMethodThatCouldHaveCompletion(myCompletion)
...
}
func someMethodThatCouldHaveCompletion(completion: (() -> Void)?){
...
}
func myCompletionFunction() {
...
}
Run Code Online (Sandbox Code Playgroud)
我有一个错误: Cannot assign a value of type '()' to a value of type '(()->Void)?'
我尝试as! (() -> Void)?在将函数设置为myCompletion变量后添加,但收到另一个错误Cannot downcast from '()' to a more optional type '(()->Void)?'
那么,有没有办法解决它?我有一种感觉,我错过了completion: (() -> Void)?类型的东西.
类型myCompletion很好,问题在这里:
myCompletion = myCompletionFunction()
Run Code Online (Sandbox Code Playgroud)
你没有分配myCompletion给myCompletionFunction; 您正在调用myCompletionFunction并将其返回值分配给myCompletion,导致类型不匹配.
将该行更改为:
myCompletion = myCompletionFunction
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |