微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

在块执行期间,我希望自己是非零的,我确信它会是非零的.那么为什么要明确指定[无主自我]?

object.executeBlock {
    date = self.lastModified
}

VS

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

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

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐