gpt4 book ai didi

ios - Swift:如何将函数类型值设置为可选变量?

转载 作者:搜寻专家 更新时间:2023-10-31 22:16:02 24 4
gpt4 key购买 nike

我想在需要时使用函数作为另一个函数的完成。但是我有一个最好用代码描述的问题:

...{
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)?'

我尝试将 添加为! (() -> Void)? 将函数设置为 myCompletion 变量后,收到另一个错误 Cannot downcast from '()' to a more optional type '(()->Void)?'

那么,有什么办法可以解决吗?我有一种感觉,我错过了 completion: (() -> Void)? 类型的东西。

最佳答案

myCompletion的类型没问题,问题出在这里:

myCompletion = myCompletionFunction()

您没有将 myCompletion 分配给 myCompletionFunction;您正在调用 myCompletionFunction 并将其返回值分配给 myCompletion,导致类型不匹配。

将该行更改为:

myCompletion = myCompletionFunction

关于ios - Swift:如何将函数类型值设置为可选变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com