gpt4 book ai didi

swift - 这个 `[unowned self] in` Swift 代码在做什么?

转载 作者:行者123 更新时间:2023-11-28 09:33:09 29 4
gpt4 key购买 nike

我遇到了这段我不理解的 Swift 代码。分配给 navigationCallback 的是什么?什么是 [unowned self]?如果我能看到 Objective-C 中的等效示例,我想我会更好地理解这一点。

navigationCallback = { [unowned self] in
previousNavigationCallback?()
if self.state != .Canceled {
callback()
}
}

最佳答案

What is the navigationCallback being assigned to?

花括号中的东西构成了一个匿名函数。就像一个 block在 Objective-C 中。

What is [unowned self]?

匿名函数捕获列表中 in 之前方括号中的内容。它通过将 self 带入未保留的匿名函数来防止保留循环。 unowned 类似于 Objective-C 中的 assign 属性策略(非 ARC weak)。在 Objective-C 中,你通常会执行 weak-strong dance为了做类似的事情。

关于swift - 这个 `[unowned self] in` Swift 代码在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41664225/

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