正常情况下,swift会类似oc那样利用ARC机制在不在使用类的实例的时候自动释放内存。但是在极少数情况下需要像oc一样,需要你提供更多的代码信息来管理内存。
注意:引用计数仅仅用于类的实例,枚举和结构体类型都是值类型,不是引用类型。
引用计数的工作机制:类的实例中国存储的信息包括:类型的信息,以及存储属性的值。只要有常量,变量或者属性在引用实例的时候,ARC都不会销毁内存。当你不再使用实例的时候,ARC就会销毁内存。需要注意 的情况有以下几种情况:
类实例间的循环引用:
定义两个类
进行实例化
内存反应
相互引用
自己释放之后
依然在进行相互引用的导致无法释放。
解决方案:
可以提供两种方案:弱引用和无主引用。