var和weak var在Swift中有什么区别?
- 论坛
- var和weak var在Swift中有什么区别?
10 浏览
匿名的
0 Comments
在Swift中,var
和weak var
之间的区别与ARC(自动引用计数)管理对象内存的方式有关。使用var
关键字定义一个强引用,而使用weak var
关键字定义一个弱引用。
只要还有一个或多个强引用指向对象,对象就会在内存中保留。使用弱引用可以在不增加对象的“引用计数”(retain count)的情况下持有对象的引用。
如果没有其他内容保持对weak var
的引用,对象将被释放,并且weak var
将变为nil
。1而当使用var
时,这不会发生,因为它定义了对对象的强引用,这应该防止对象被释放。
这与Objective-C中的“strong”和“weak”工作方式相同,我建议您阅读这个答案,因为它完全适用于Swift。
1作为Swift的特殊说明,这就是为什么任何声明为weak var
的内容都必须是可选类型的原因。