深入探索Swift课堂

让我们一起深入课堂

Shanu:嘿Aaina! 我在项目中经常使用类,但是我想知道它的实际工作原理,在哪里保存数据以及所有内容。

我:好的Shanu。 类是引用类型。 将引用类型分配给变量或常量,或将它们传递给函数时,不会复制引用类型。 而不是副本,而是使用对相同现有实例的引用。

引用类型实例在堆上分配,并且变量仅包含对内存中存储数据位置的引用。 因此,理想情况下,数据将存在于堆中,而引用指针将存储在堆栈中。 对于同一个实例可能有多个变量引用,这很普遍。 这些引用中的任何一个都可以用于操纵实例。 在复制类时,它将继续指向相同的引用指针,并将保留计数增加1。

沙奴:乌夫 ! 理论太多。 您能详细说明一下吗?

Aaina:好的。 我们来看一个类片段,看看它是对象图。

指定的初始化程序必须始终委托。

便利的初始值设定项必须始终委托。

必需的初始化程序:

使用required关键字,我们可以指示每个子类都需要实现此初始化器。

 必需的init(){} 

Shanu:很酷,很好的信息。 现在让我们讨论对象图。

我:好的。 如果在此对象图中看到引用指针是在堆栈上分配的,而值是在堆中分配的空间的。

Shanu:哇,棒极了! 有什么办法可以在xcode中查看对象的地址吗?

我:是的,肯定。 我们可以通过代码或使用lldb查找地址。