var和weak var在Swift中有什么区别?

10 浏览
0 Comments

var和weak var在Swift中有什么区别?

在Swift中,varweak var有什么区别?

0
0 Comments

在Swift中,varweak var之间的区别与ARC(自动引用计数)管理对象内存的方式有关。使用var关键字定义一个强引用,而使用weak var关键字定义一个弱引用

只要还有一个或多个强引用指向对象,对象就会在内存中保留。使用弱引用可以在不增加对象的“引用计数”(retain count)的情况下持有对象的引用。

如果没有其他内容保持对weak var的引用,对象将被释放,并且weak var将变为nil1而当使用var时,这不会发生,因为它定义了对对象的强引用,这应该防止对象被释放。

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

1作为Swift的特殊说明,这就是为什么任何声明为weak var的内容都必须是可选类型的原因。

0