这在 Swift 5.0 中是允许的:
class Person {
unowned var child: Person?
}
此发行说明支持这一点:
unowned 和 unowned(unsafe) 变量现在支持可选类型。(47326769)
在 Swift 4.2 及之前版本中,我完全理解了 weak 和 unowned 之间的区别。但是,我不确定为什么 Apple 决定制作unowned
anoptional
类型。即使在文档(Swift 5.0 的文档)中,这个实现的“提案”(我什至在哪里可以找到带有添加可选无主引用的动机的提案?)也没有更新,因为它说:
一个无主的引用应该总是有一个值。因此,ARC 永远不会将无主引用的值设置为 nil,这意味着无主引用是使用非可选类型定义的。
上面不再是真的了。Apple 声明的唯一功能差异是unowned
引用的生命周期应与持有该引用的对象相同或更长。好吧,我很好奇它的技术用途。
weak
当我使用参考与可选 参考时有什么区别unowned
?unowned
或者当引用对象具有更长的生命周期时,应该使用可选的唯一区别是什么?我希望必须有更多...