ARC和非ARC區別

ARC 是編譯器特性

看到 @property (retain), 自動在 dealloc 裏面添加相關屬性的 release ,

看到 你在main 方法裏面調用 alloc ,就在後面自動給你添加 release

注意不是垃圾回收,垃圾回收是運行時特性

ARC 的判斷準則,只要沒有強指針指向對象,就會釋放對象

指針分兩種:
默認情況下都是強指針 __strong
用兩個下劃線 __weak 聲明的是弱指針

和 非 ARC 的區別
1、 非 ARC @property 用 retain , 並且在 dealloc 裏面寫 release
ARC 用 Strong ,並且不用 release

ARC 的特點
1>不允許調用 release retain retainCount
2>允許重寫 dealloc 但不允許調用 [super dealloc]
3>@property 的參數
* Strong 相當於原來的 retian
* weak 相當於原來的 assign
* assign 使用於 非 OC 對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章