弱者和无人者之间的区别迅速。

为了避免保留周期,我们必须指定两个对象之间的关系,即弱,无主,强

默认情况下,对实例的变量引用是强引用。 但这并不总是您想要的。 如果强引用不适合,则您可以使用其他选择,即引用和无主引用。

虚弱或无主的实例引用计数增加了。

让我们形象化。

  1. 弱总是声明为可选的。它可以包含nil或实际类型。
  2. 弱引用的值需要先包装才能访问。

何时使用:

当您不确定实例在整个生命周期中将始终存在时。

例如:

  • 弱所有者不会确定实例将始终存在。 因为在任何时候它都会包含一个实际值或nil。
  • 为了避免代码崩溃,请确保使用guard语句确保捕获的实例永远不会为零。

无人

让我们形象化。

  1. 无主总是具有实际类型。
  2. 您可以直接访问无主引用的值。
  3. 未拥有的引用被释放,它没有设置为nil。 结果,如果对非拥有引用的引用对象进行ac访问, 则会引发致命错误

何时使用:

当您确定实例将在整个生命周期中始终存在时。

如何使用 :

例如:

  • 无主拥有者确保实例在clouser中将始终存在。
  • 如果所有者实例被释放,我们的代码将崩溃。 因此在使用无主物品时要小心。

在下一篇文章中,我们将看到Swift内存管理-自动释放池

https://medium.com/@shantakokateit/swift-memory-management-autorelease-pool-eea16d3863eb