Swift 中的自动引用计数

ARC

  • Swift 使用自动引用计数(ARC)来跟踪并管理应用使用的内存。大部分情况下,这意味着在 Swift 语言中,内存管理“仍然工作”,不需要自己去考虑内存管理的事情。当实例不再被使用时,ARC 会自动释放这些类的实例所占用的内存。
  • 引用计数只应用在类的实例。结构体(Structure)和枚举类型是值类型,并非引用类型,不是以引用的方式来存储和传递的。

ARC如何工作

循环引用

  • 通过弱引用或者无主引用来取代强引用

解决循环引用

  • 弱引用和无主引用允许引用环中的一个实例引用另外一个实例,但不是强引用。因此实例可以相互引用但是不会产生强引用环。
  • 对于生命周期中引用会变为 nil 的实例,使用弱引用;对于初始化时赋值之后引用再也不会赋值为 nil 的实例,使用无主引用。

弱引用

无主引用

闭包引用循环

闭包引用循环解决

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容