nhg*_*rif 10

这与ARC如何管理对象的内存有关.

使用var定义对对象的引用,而使用weak var定义对对象的引用.

只要存在对该对象的一个​​或多个强引用,对象就会保留在内存中.使用弱引用允许您保持对对象的引用,而不会增加所谓的"保留计数".

如果没有其他任何东西可以引用你的weak var,那么该对象将被释放,你的weak var意志将衰败nil.1 当你刚才使用时var,这不会发生,因为它定义了对象的强引用,这应该阻止它解除分配.

这与Objective-C中"强"与"弱"的工作原理相同,我建议你阅读这个答案,因为它完全适用于Swift.

1 作为Swift特定注释,这就是为什么声明为weak var必须是可选类型的原因.