gpt4 book ai didi

ios - iOS swift 3 中的回调

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

您好,是否可以进行这样的回调?我想传递一个函数作为参数,以便能够在某些任务完成后运行回调函数。

class ConnectBLE {
var callBackFunc: ()->()

init(callFunc: @escaping () -> ()){

callBackFunc = callFunc
}

func runCallBackFunc() {
callBackFunc()
}
}
class DelegateARC {
private let object = ConnectBLE(callFunc: RaspakHC05)

func RaspakHC05() {
print("hello from a callback")
}
}

但是我有一个错误。无法将“(DelegateARC) -> () -> ()”类型的值转换为预期的参数类型“() -> ()”

最佳答案

您不能在需要self (RaspakHC05) 的类的顶层运行非惰性代码。

除此之外,您还必须在 ConnectBLE 中的某处调用 runCallBackFunc() 来执行闭包。

你可以(在 Playground 中)

class ConnectBLE {
var callBackFunc: ()->()

init(callFunc: @escaping () -> ()){
callBackFunc = callFunc
}

func runCallBackFunc() {
callBackFunc()
}
}
class DelegateARC {

init() {
ConnectBLE(callFunc: RaspakHC05).runCallBackFunc()
}

func RaspakHC05() {
print("hello from a callback")
}
}


DelegateARC() // prints "hello from a callback"

关于ios - iOS swift 3 中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527861/

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