标签:swift swift教程 swift视频 ios ios8
具体而言,Swift中的ARC内存管理是对引用类型的管理,即对类所创建的对象采用ARC管理。而对于值类型,如整型、浮点型、布尔型、字符串、元组、集合、枚举和结构体等,是由处理器自动管理的,程序员不需要管理它们的内存。class Employee { ① var no : Int var name : String var job : String var salary : Double init(no : Int, name: String, job : String, salary : Double) { ② self.no = no self.name = name self.job = job self.salary = salary println("员工\(name) 已经构造成功。") ③ } deinit { ④ println("员工\(name) 已经析构成功。") ⑤ } } var ref1: Employee? ⑥ var ref2: Employee? ⑦ var ref3: Employee? ⑧ ref1 = Employee(no: 7698, name: "Blake", job :"Salesman", salary : 1600) ⑨ ref2 = ref1 ⑩ ref3 = ref1 ? ref1 = nil ? ref2 = nil ? ref3 = nil ?
上述代码第①行声明了Employee类,第②行代码是定义构造器,在构造器中初始化存储属性,并且在代码第③行输出构造成功信息。第④行代码是定义析构器,并在代码第⑤行输出析构成功信息。
代码第⑥~⑧行是声明3个Employee类型变量,这个时候还没有创建Employee对象分配内存空间。代码第⑨行是真正创建Employee对象分配内存空间,并把对象的引用分配给ref1变量,ref1与对象建立“强引用”关系,“强引用”关系能够保证对象在内存中不被释放,这时候它的引用计数是1。第⑩行代码ref2 = ref1是将对象的引用分配给ref2,ref2也与对象建立“强引用”关系,这时候它的引用计数是2。第?行代码ref3 = ref1是将对象的引用分配给ref3,ref3也与对象建立“强引用”关系,这时候它的引用计数是3。这说明只有在引用计数为0的情况下才调用析构器,释放对象。
欢迎关注智捷iOS课堂微信公共平台
标签:swift swift教程 swift视频 ios ios8
原文地址:http://blog.csdn.net/tonny_guan/article/details/39058205