arc知識介紹
(1)概念:arc的全稱是
automatic reference counting (
自動引用計數
),是自ios5
之後增加的新特性,編譯器會自動在合適的地方插入適當的retain
、release
、autorelease
語句,會自動生成記憶體管理的**,不用程式設計師手動編寫。
(2)如果是手動管理記憶體,可以簡稱mrc(manual reference counting)
的業務。
(4)好處:基本上能夠避免記憶體洩漏
(5)強指標:預設所有指標變數都是強指標;被__strong
修飾的指標。
(6)弱指標:被__weak
修飾的指標
(7)arc中的
@property引數
1.strong:用於
oc物件,相當於
mrc中的
retain
2.weak:用於
oc物件,相當於
mrc中的
assign
3.assign:用於基本資料型別,跟
mrc中的
assign一樣
4.copy:一般用於
nsstring
,跟mrc
中的copy一樣
(8)工作原理:只要還有乙個強指標變數指向物件,物件就會保持在記憶體中。如:
arc環境引用
在person.h
和 dog.h
中不能都宣告
strong:
@property (nonatomic, strong) dog *dog;
@property (nonatomic, strong) person *person;
一端用strong
,一端用
weak
,不限制誰用
weak
,這樣弱指標指向的物件會先銷毀,另一端若沒有指標指向,則也會銷毀。
@property (nonatomic, strong) dog *dog;
@property (nonatomic, weak) person *person;
所以,當兩端迴圈引用的時候,解決方案:
arc:
1端用strong,1
端用weak
非arc:
1端用retain,1
端用assign
(9)arc特點總結:
1)、不允許呼叫release
、retain
、retaincount。
2)、允許重寫dealloc
,但是不允許呼叫
[super dealloc]。
ARC學習筆記
1.arc並不是自動管理記憶體,與autoreleasepool不同,arc是llvm 3.0編譯器提供的特性,編譯器自動在適當的地方插入retain release autorelease,所以還是手動管理記憶體,物件不會像autoreleasepool一樣在記憶體中存放很久。2.arc只能工作於...
ARC 學習筆記(一)
arc,顧名思義,automatic reference count,也就是自動引用計數。它是相對mrc 手動引用計數 而言的。當時不管是arc還是mrc,都應該嚴格遵守objective c記憶體管理的基本原則 strong修飾符 strong修飾符是預設的修飾符。這樣不管是alloc new c...
iOS應用開發 ARC
arc是什麼 arc是ios 5推出的新功能,全稱叫 arc automatic reference counting 簡單地說,就是 中自動加入了retain release,原先需要手動新增的用來處理記憶體管理的引用計數的 可以自動地由編譯器完成了。該機能在 ios 5 mac os x 10....