Swift中的var和弱var有什么区别



Swift中的varweak var有什么区别?

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

使用var定义了对对象的引用,而使用weak var定义了对该对象的参考。

只要有一个或多个对对象的强引用,对象就会被保存在内存中。使用弱引用可以保持对对象的引用,而不增加其"保留计数"。

如果没有其他内容包含对weak var的引用,则对象将被释放,并且weak var将衰减为nil1当您只使用var时,这种情况不会发生,因为这定义了对对象的强引用,这将防止它释放。

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

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

相关内容

  • 没有找到相关文章

最新更新