【发布时间】:2019-07-18 01:41:26
【问题描述】:
这在 Swift 5.0 中是允许的:
class Person {
unowned var child: Person?
}
unowned 和 unowned(unsafe) 变量现在支持可选类型。 (47326769)
在 Swift 4.2 及之前版本中,我完全理解了 weak 和 unowned 之间的区别。但是,我不确定为什么 Apple 决定将 unowned 设为 optional 类型。即使在docs(Swift 5.0 的文档)中,这个实现的“提案”(我什至在哪里可以找到带有添加可选无主引用的动机的提案?)也没有更新,因为它说:
一个无主的引用应该总是有一个值。因此, ARC 从不将无主引用的值设置为 nil,这意味着 无主引用是使用非可选类型定义的。
以上不再正确。 Apple 声明的唯一功能差异是 unowned 引用的生命周期应与持有该引用的对象相同或更长。好吧,我很好奇它的技术用途。
当我使用 weak 参考与 可选 unowned 参考时有什么区别?或者,当引用对象的生命周期较长时,应该使用可选的unowned 的唯一区别是什么?我希望必须有更多...
【问题讨论】:
标签: swift automatic-ref-counting swift5