swift – 为什么在你依赖自己的地方指定[无主自我]?

swift – 为什么在你依赖自己的地方指定[无主自我]?,第1张

概述在块执行期间,我希望自己是非零的,我确信它会是非零的.那么为什么要明确指定[无主自我]? object.executeBlock { date = self.lastModified} VS object.executeBlock { [unowned self] in date = self.lastModified} 编辑: 好吧,我正在投票,所以让我们再试一次.问:假设我 在块执行期间,我希望自己是非零的,我确信它会是非零的.那么为什么要明确指定[无主自我]?

object.executeBlock {    date = self.lastModifIEd}

VS

object.executeBlock { [uNowned self] in    date = self.lastModifIEd}

编辑:
好吧,我正在投票,所以让我们再试一次.问:假设我有问题.那个问题是我想阻止参考周期.我有两个选择.我可以使用[无主的自我]或者我可以使用[弱自我].因此,我的问题是:从这两个选项中,为什么我会选择[无主自我]?为什么不每次选择[弱自我]?

解决方法 “语言指南声称,如果封闭物和包含物体相互引用并且将同时被销毁,则应该使用无主物.据推测,这是为了避免安全地将物体中的弱引用安排为无效的成本. “.

http://www.russbishop.net/swift-capture-lists

所以[无主的自我]使自我成为一个隐含的未包装的选项,为了方便自己不打开它,冒着崩溃的风险,当然它实际上是零.

总结

以上是内存溢出为你收集整理的swift – 为什么在你依赖自己的地方指定[无主自我]?全部内容,希望文章能够帮你解决swift – 为什么在你依赖自己的地方指定[无主自我]?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1010434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存