gpt4 book ai didi

ios - Swift 在闭包中捕获 self

转载 作者:行者123 更新时间:2023-12-04 08:48:04 24 4
gpt4 key购买 nike

我有以下 Swift 代码:

  func callback(_ status: PHAuthorizationStatus) {

}

func myFunction() {

let handler:(PHAuthorizationStatus) -> Void = { (status) in
self.callback(status)
}

PHPhotoLibrary.requestAuthorization(for: .addOnly) { (status) in
handler(status)
}

}
我怀疑的是,在声明为局部变量的闭包中是否存在保留循环,以及我们是否应该在处理程序中使用 unowned 或 weak self 来代替。 Swift 如何处理在函数内部声明为局部变量的闭包?

最佳答案

有两种可能性:要么你调用的函数只能在函数本身运行时调用闭包,要么局部变量使闭包保持事件状态。
或者你调用的函数会将闭包保存在某个地方,并且可能在函数返回后调用闭包。在这种情况下,该函数将其闭包参数声明为“@escaping”并使其保持事件状态。

关于ios - Swift 在闭包中捕获 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64215038/

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