Swift之深入解析内存管理的底层原理
生活随笔
收集整理的這篇文章主要介紹了
Swift之深入解析内存管理的底层原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Swift 內存管理
① ARC
- 跟 OC 一樣,Swift 也是采用基于引用計數的 ARC 內存管理方案(針對堆空間);
- Swift 的 ARC 中有三種引用:
- 強引用(strong reference):默認情況下,引用都是強引用;
- 弱引用(weak reference):通過 weak 定義弱引用;
- 必須是可選類型的 var,因為實例銷毀后,ARC 會自動將弱引用設置為 nil;
- ARC 自動給弱引用設置 nil 時,不會觸發屬性觀察器;
- 無主引用(unowned reference):通過 unowned 定義無主引用;
- 不會產生強引用,實例銷毀后仍然存儲著實例的內存地址(類似 OC 中的 unsafe_unretained);
- 視圖在實例銷毀后訪問無主引用,會產生運行時錯誤(野指針)。
② weak/unowned 使用限制
- weak、unowned 只能用在類實例上面,這是因為一般只有類實例放堆空間,結構體、枚舉一般都是不放在堆空間的;
總結
以上是生活随笔為你收集整理的Swift之深入解析内存管理的底层原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS之深入解析类加载的底层原理:分类如
- 下一篇: Swift之深入解析反射Mirror与错