gpt4 book ai didi

有委托(delegate)的 Swift 闭包

转载 作者:搜寻专家 更新时间:2023-11-01 05:55:20 27 4
gpt4 key购买 nike

所以当我从委托(delegate)方法接收到一些东西时,我试图创建一个闭包:

typealias CompletionResponse = ((_ response: AnyObject) -> Void)?

class SomeClass {

static let shared = SomeClass()

var completion: CompletionResponse?

func getSomthing(completion: CompletionResponse) {
self.completion = completion
}

func someDelegateMethode(info: [String]) {
// Error is here
if let completion = self.completion {
completion(info)
}
}
}

_ = SomeClass.shared

SomeClass.shared

SomeClass.shared.getSomthing { (obj) in
print(obj as! [String])
}

SomeClass.shared.someDelegateMethod(info: ["Hello", "There"])

我不知道该怎么做..感谢您的帮助。

收到错误:
无法调用非函数类型“CompletionResponse”(又名“Optional<(AnyObject) -> ()>”)的值

谢谢

最佳答案

从类型别名中删除可选。编译器不理解如何调用 completion,因为它有一个 double 可选类型。

此外,您可以使用可选链接而不是 if let

self.completion?(info)

关于有委托(delegate)的 Swift 闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48330845/

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