gpt4 book ai didi

Swift 可选转义闭包

转载 作者:行者123 更新时间:2023-11-30 10:38:29 26 4
gpt4 key购买 nike

enter image description here

编译器错误闭包使用非转义参数“completion”可能会导致其转义,这是有道理的,因为它将在函数返回后被调用。

func sync(completion:(()->())) {
self.remoteConfig.fetch(withExpirationDuration: TimeInterval(expirationDuration)) { (status, error) -> Void in
completion()
}
}
<小时/>

但是如果我将闭包设置为可选,则不会出现编译器错误,这是为什么?函数返回后仍然可以调用闭包。

func sync(completion:(()->())?) {
self.remoteConfig.fetch(withExpirationDuration: TimeInterval(expirationDuration)) { (status, error) -> Void in
completion?()
}
}

最佳答案

将闭包包装在Optional中会自动将其标记为转义。从技术上讲,它已经通过嵌入到枚举(可选)中“转义”了。

关于Swift 可选转义闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57371202/

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