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