闭包捕获列表

Swift专题讲解十六——ARC在Swift中的应用

北慕城南 提交于 2019-12-03 08:57:52
Swift专题讲解十六——ARC在Swift中的应用 一、引言 ARC(自动引用计数)是Objective-C和Swift中用于解决内存管理问题的方案。在学习Objective-C编程时经常会学习到一个关于ARC的例子:在一个公用的图书馆中,每次进入一人就将卡插入,走的时候将自己的卡拔出拿走。图书馆系统会判定只要有卡插入,就将图书馆的灯打开,当所有卡都被取走后,将图书馆的灯关掉。这个例子对应于Objective-C中的对象声明周期管理十分贴切。每当一个对象增加一个引用时,其引用计数会加1,当一个引用被取消时,对象的引用计数减1,当引用计数减为0时,说明此对象将不再有任何引用,对象会被释放掉,让出内存。Swift也采用同样的方式进行内存管理。 注意:在Swift中只有引用类型有自动引用计数,结构体、枚举这类值类型是没有引用计数的。关于引用计数的示例代码如下: class MyClass { deinit{ print("MyClass deinit") } } var cls1:MyClass? = MyClass() var cls2:MyClass? = cls1 var cls3:MyClass? = cls2 cls2 = nil cls1 = nil //执行下面代码后才会打印“MyClass deinit” cls3 = nil 二、循环引用的处理方法 在开发中