ios筆記 ARC筆記

2021-06-22 14:42:06 字數 1373 閱讀 7225

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....