Swift中的类

Swift中类的定义与上一篇中结构体定义类似,但编译器并没有为类自动生成可以传入成员值的初始化器

class Test {
      var x: Int = 1
      var y: Int = 1
  }

如果类的所有成员都在定义的时候指定了初始值,编译器会为类无参的初始化器

引用赋值给var、let或者给函数传参,是将内存地址拷贝一份,属于浅拷贝

var test = Test()
var test4 = test
print(Mems.ptr(ofRef: test))
print(Mems.ptr(ofRef: test4))
//test地址 0x000060000282db40
//test4地址 0x000060000282db40

对象的堆空间申请过程:

在Swift中,创建类的实例对象,要向堆空间申请内存,大概流程如下:

Class._allocating_init()
libswiftCore.dylib:_swift_allocObject_
libswiftCore.dylib:swift_slowAlloc
libsystem_mallov.dylib:malloc

 

posted @ 2020-09-10 19:36  木子沉雨  阅读(148)  评论(0编辑  收藏  举报