swift的自动引用计数

正常情况下,swift会类似oc那样利用ARC机制在不在使用类的实例的时候自动释放内存。但是在极少数情况下需要像oc一样,需要你提供更多的代码信息来管理内存。

注意:引用计数仅仅用于类的实例,枚举和结构体类型都是值类型,不是引用类型。

引用计数的工作机制:类的实例中国存储的信息包括:类型的信息,以及存储属性的值。只要有常量,变量或者属性在引用实例的时候,ARC都不会销毁内存。当你不再使用实例的时候,ARC就会销毁内存。需要注意 的情况有以下几种情况:

类实例间的循环引用:

定义两个类

swift的自动引用计数_第1张图片
swift的自动引用计数_第2张图片

进行实例化

swift的自动引用计数_第3张图片

内存反应

相互引用

swift的自动引用计数_第4张图片

自己释放之后

swift的自动引用计数_第5张图片

依然在进行相互引用的导致无法释放。

解决方案:

可以提供两种方案:弱引用和无主引用。

你可能感兴趣的:(swift的自动引用计数)