黑馬程式設計師 9 OC基礎 記憶體管理

2021-06-21 09:33:04 字數 1818 閱讀 1437

---------------------- 

asp.net+unity開發

、.net培訓

、期待與您交流! ----------------------

一 arc預設開啟關閉方法.

二 記憶體管理oc的方式

1.引用計數器的方式.

當使用alloc new 或者copy建立乙個新物件時,系統會自動將新物件的計數器預設設定為1,若當計數器為0時,物件就會被從記憶體中釋放.,而通過retain與release可以對物件進行計數器增減操作,方便物件在記憶體中的管理. 使用retaincount可以獲得當前的計數器值.而當**物件時,呼叫dealloc,[super dealloc]一定放在最後面. 如:

int main()

dealloc的用法:在相應的類實現檔案中如person.m

#import "person.h"

@implementation person

- (void)dealloc

@end

記憶體管理的原則:誰建立,誰release,誰呼叫retain,誰release. 有過計數器+1,那就必須之後-1.

2.對於set方法,當變數是基本資料型別的時候,不變,

針對oc物件型別,按照是否新的物件判斷如下

- (void)setcar:(car *)car

}

3.對於@property引數一般使用的方法:

set有retain assign copy readwrite readonly等引數,

執行緒管理有nonatomic(效能高,一般使用) atomic(預設),

注意:返回bool型別的方法名一般以is開頭

相關使用如:

@property (getter = isrich) bool rich;

@property (nonatomic, assign, readwrite) int weight;

@property (readwrite, assign) int height;

@property (nonatomic, assign) int age;

@property (retain) nsstring *name;

4.上面的乙個個的物件引數retain使用有了新的代替那就是autorelease自動釋放池,新增引數autorelease會將物件建立到自動釋放池中,當自動釋放池銷毀時,會自動將release訊息傳送給物件   對於系統自帶的方法中,如果不包含alloc new copy 說明這些方法返回的物件都是已經autorelease過的.

5.迴圈使用:

@class的使用,宣告該名稱是個類,利用#import"  "使用類中所有的內容.

7.arc的使用

xcode5之後arc是預設開啟的,arc方便了記憶體管理,是程式設計師不用將時間浪費在記憶體管理上,判斷準則:只要沒有強指標指向物件,就會釋放物件.

arc既然包含了記憶體管理,那麼之前的記憶體管理所使用的方法,各種引數就被禁止了,release retain retaincount 不可以呼叫,dealloc可以重寫,但是不允許呼叫[super dealloc],@property的引數 分strong weak assign(適用於非oc物件).

指標預設為強指標,也就是_strong, 弱指標為_weak. 

---------------------- 

asp.net+unity開發

、.net培訓

、期待與您交流! ----------------------

黑馬程式設計師 OC基礎 記憶體管理

oc的區域性變數在 塊結束時被系統銷毀,記憶體被 oc的物件,內部有引用計數器,當引用計數器的值為0時,被系統銷毀,記憶體被 區域性變數存放在棧中.物件存放在堆中.注意,物件指標還是存放在棧中,物件本身占用的記憶體存放在堆中.在oc中,我們要對自己寫的繼承了nsobject的物件進行記憶體管理.物件...

黑馬程式設計師 OC 記憶體管理

1.什麼是記憶體管理 管理範圍 任何繼承了nsobject的物件,對其他基本型別無效 2.物件的基本結構 每個oc物件都有自己的引用計數器,是乙個整數,表示 物件被引用的次數 即有多少個人正在使用oc物件 每個oc物件內部專門有4個位元組的儲存空間來儲存引用計數器 3.引用計數器的作用 當使用all...

黑馬程式設計師 OC基礎11 記憶體管理01

asp.net unity開發 net培訓 期待與您交流!一 概念 1 對任何繼承了nsobject的物件進行記憶體釋放管理 2 基礎資料型別不包括在內 二 作用 三 使用方法 1 引用計數器 1 概念 每個oc物件都有乙個引用計數器,表示物件被引用的次數,佔4個位元組記憶體空間 2 作用 當使用a...