ARC Swift教程
ARC的功能
- 每次通过init()创建新的类实例时, ARC每次都会分配一块内存来存储信息。
- 有关实例类型及其值的信息存储在内存中。
- 当不再需要类实例时,它将通过deinit()自动释放内存空间,以用于进一步的类实例存储和检索。
- ARC跟踪当前引用的类实例的属性,常量和变量,以便将deinit()仅应用于那些未使用的实例。
- ARC维护对这些类实例属性,常量和变量的“强大引用”,以在当前使用类实例时限制释放。
有关ARC工作原理的更多信息,请访问Apple开发人员文档
1内存管理
内存管理在您要编写的任何应用程序中都至关重要。 这是由于移动设备中的硬件限制。
1.1 MRR
过去, 可可开发人员负责整个MRR (手动保留版本)中的内存管理资源。
Vehicle * cloudCar = [[Vehicle Alloc ] int];
// ..
NSString *模型= cloudCar.model;
// ..
[cloudCar 发布 ]
alloc方法用于创建对象并声明所有权开销,而release用于释放所有所有权对象。
1.2自动参考计数(ARC)
2011年,Apple转向自动参考计数。 在大多数情况下,快速进行内存管理是可行的,并且我们对内存管理没有做任何事情。 当不再需要类实例时,ARC会自动冻结内存使用。
每次一个类都是实例时,ARC会为该实例分配一个内存。 这部分内存包含与实例类型相关的信息。
var cloudCar = Vehicle()
然后,如果不再需要该实例,则可以释放分配给其他对象的空间。
var cloudCar:车辆?
cloudCar =车辆()
cloudCar =零
当然,如果从内存中释放了cloudCar ,但您仍然使用它,则应用程序将崩溃。 💣🤗
var cloudCar:车辆?
cloudCar =车辆()
cloudCar =零
label.text = cloudCar.name