2015-04-05 80 views
3

Swift中的varweak var有什么区别?Swift中var和var的区别是什么

+2

您能澄清Swift书中“弱引用”一节中的哪一部分对您不清楚吗? – 2015-04-05 20:04:56

+0

我不使用书籍,但在YouTube上观看视频, – nonamexd 2015-04-05 20:05:51

+2

@nonamexd我建议您阅读免费书...它是免费的... – nhgrif 2015-04-05 20:06:05

回答

9

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

使用var限定参考对象,同时使用weak var限定参考对象。

只要存在对该对象的一个​​或多个强引用,对象就会一直保留在内存中。使用弱参考可以让您持有对象的引用,而不会增加所谓的“保留计数”。

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

这与“强”与“弱”在Objective-C中的工作方式相同,我建议您阅读this answer,因为它完全适用于Swift。

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

+0

感谢您的好消息! – nonamexd 2015-04-05 20:10:10

相关问题