弱者和无人者之间的区别迅速。
为了避免保留周期,我们必须指定两个对象之间的关系,即弱,无主,强
默认情况下,对实例的变量引用是强引用。 但这并不总是您想要的。 如果强引用不适合,则您可以使用其他选择,即弱引用和无主引用。
虚弱或无主的实例引用计数增加了。
弱
让我们形象化。
- 弱总是声明为可选的。它可以包含nil或实际类型。
- 弱引用的值需要先包装才能访问。
何时使用:
当您不确定实例在整个生命周期中将始终存在时。
例如:
- 弱所有者不会确定实例将始终存在。 因为在任何时候它都会包含一个实际值或nil。
- 为了避免代码崩溃,请确保使用guard语句确保捕获的实例永远不会为零。
无人
让我们形象化。
- 无主总是具有实际类型。
- 您可以直接访问无主引用的值。
- 未拥有的引用被释放,它没有设置为nil。 结果,如果对非拥有引用的引用对象进行ac访问, 则会引发致命错误 。
何时使用:
当您确定实例将在整个生命周期中始终存在时。
如何使用 :
例如:
- 无主拥有者确保实例在clouser中将始终存在。
- 如果所有者实例被释放,我们的代码将崩溃。 因此在使用无主物品时要小心。
在下一篇文章中,我们将看到Swift内存管理-自动释放池
https://medium.com/@shantakokateit/swift-memory-management-autorelease-pool-eea16d3863eb