我对 swift 中的这个主题感到困惑,据说无主引用必须始终有一个值并且不能是可选的,也意味着它们不能设置为“nil”....好吧,我刚刚看到了一个程序苹果的 Swift 文档表明,实例“A”具有对实例“B”的无主引用,在实例“B”被取消初始化/释放后立即被取消初始化和释放……当 var 被取消初始化/释放时,不是吗?意思是他们被设置为“零”???实例 B 是可选的,因此确保它可以保存“nil”,但为什么实例“A”在它应该始终具有值的情况下却被取消初始化???
PS:如果这有帮助......实例“B”是一个可选类型,具有对实例“A”的强引用
最佳答案
unowned
引用的要点是持有对您保证(基于您的应用程序逻辑)不会在具有 unowned 的对象之前被释放的内容的弱引用
引用。你可以read more in the documentation .
从某种意义上说,它类似于隐式展开的可选类型(例如 String!
)。您是在告诉编译器当它为 nil
时您永远不会访问该值,如果您这样做,您的程序将会崩溃。
关于ios - Unowned 引用在取消初始化时是否设置为 'nil'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33491392/