gpt4 book ai didi

Swift - 捕获列表 self 澄清

转载 作者:搜寻专家 更新时间:2023-11-01 07:02:47 25 4
gpt4 key购买 nike

看了apple的一些文章和开发者指南,我对closure中的Capture List还是很困惑。“捕获”是什么意思,它在无主 self 和弱 self 方面是如何在幕后运作的?闭包如何在不拥有对象的情况下使用自己?我认为它就像制作那个对象的副本,所以当它完成时它像值类型一样从堆栈传递,但我想我错了。我希望这里有人可以让它更容易理解,或者将我链接到一篇回答这个特定问题的好文章。感谢提前

最佳答案

我的理解,可能有点简化,它是关于所有权和持有一个对象,这意味着只要我们声明了一个对象的所有权,它就不能从内存中释放出来,即使是对象的另一部分代码将其设置为 nil 或类似的。

对于 weak,我们说可以销毁该对象,并且我们只会在它仍然存在时才使用它。

因此,当在闭包中将 self 声明为 weak 时,我们说如果 self 在执行闭包时仍然存在,我们会这样做所以通常情况下闭包会被默默地忽略而不会产生错误。

关于Swift - 捕获列表 self 澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50129147/

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