8.4.2 ARC
2025年09月26日
8.4.2 ARC
自动引用计数(Automatic Reference Count)简称ARC,是Swift内存管理的基础。在绝大部分时间里,开发者都不需要关心ARC具体做了什么,只需要在自己的大脑中了解这些基本概念就可以了。先观察如下示例:
动手写8.4.1 ARCExample
控制台输出如下:
每个类都可以重写deinit方法,这个方法会在实例被释放时执行,可以在其中增加一些自定义的逻辑,但是读者千万不要自己去手动调用这个方法,而应该由系统调用。在这个示例中,创建了一个Example的实例,然后赋值给了example,接着又赋值给了exampleRef1和exampleRef2。此时先将example置为nil,那么Example的实例就没有被example引用了,但是这个实例并没有被释放,这是因为还有两个变量在引用它,直到剩余两个引用也被置为nil之后,Example的实例才被释放,而且释放得很及时,在最后一个引用置为nil后,deinit方法立即被执行了。
其实ARC做的事情就是不断地去改变实例的引用计数,当变为0时主动去释放这部分内存,使得内存中没有资源的浪费。