Objective C 記憶體管理方式 二

2021-07-10 07:36:44 字數 703 閱讀 9539

arc (automatic reference counting)  自動引用計數

使用arc,編譯器會自動新增retain、release、對引用計數做加減。

arc**法則:

1、如果沒有乙個指標指向物件,那麼此物件從記憶體中銷毀

2、只要還有乙個指標指向物件,那麼物件就儲存在記憶體中

arc也存在記憶體洩露!!!!!

arc中的重寫dealloc方法:

- (void) dealloc

arc與mrr的區別:

1、arc中,dealloc方法中不允許呼叫[super dealloc];

2、arc中,不允許使用retaincount屬性,列印引用計數;

3、arc中,不允許使用retain、release、autorelease,copy可以使用;

4、arc中,不能使用nsautoreleasepool,需要使用@autoreleasepool{}

5、arc不再允許結構體和列舉中宣告oc的物件作為成員變數;

6、arc在switch-case語句中定義指標變數,需要新增其作用域。

arc、非arc的使用標記:

project settings---> build phase

-fno - objc - arc    標記源**檔案使用mrr

-fobjc - arc  標記檔案使用arc(預設不寫)

Objective C記憶體管理

objective c的物件記憶體管理是一件非常有意思的事情,由其是在iphone嵌入式裝置中 想玩的省心點,就得熟知它的管理規則,由其是記憶體的管理機制。了解它的品性了才能在cocoa的世界裡如魚得水。否則,反之 如水得魚!1,乙個物件可以有乙個或多個擁有者 2,當它乙個擁有者都沒有時,它就會被 ...

Objective C 記憶體管理

objective c 記憶體管理 nsautoreleasepool pool nsautoreleasepool alloc init pool drain 事實上程式中可以有多個自動釋放池。自動釋放池其實並不包含實際的物件本身,僅僅是對釋放的對 象的引用。通過向目前的自動釋放池傳送一條auto...

Objective C 記憶體管理

objective c中,記憶體物件分二類 1 值型別,如 int float struct等基本資料型別 2 引用型別,通常是指繼承自nsobject類的oc物件 值型別在棧中,由系統自動管理,而引用型別在堆上,需要我們自己手工進行管理 oc中提供了二種記憶體管理機制 1 手動引用計數 mrc m...