----------------------
asp.net+unity開發、
.net培訓、期待與您交流! ----------------------
1.什麼是記憶體管理
管理範圍:任何繼承了nsobject的物件,對其他基本資料型別(int、char、float、double、struct、enum等)無效
int main()
//
大括號**塊自動消除棧空間變數。a,b,p
/*但是動態儲存的物件放在堆裡,沒有任何人使用它,沒有任何指標指向。但是仍然無法消除,所以要管理記憶體,管理的方式是呼叫方法。*/
return 0; }
2.物件的基本結構
每個oc物件都有自己的引用計數器,是乙個整數,表示「物件被引用的次數」,即有多少人正在使用這個oc物件.
每個oc物件內部專門有4個位元組的儲存空間來儲存引用計數器
3.引用計數器的作用
當使用alloc、new或者copy建立乙個新物件時,新物件的引用計數器預設就是1當乙個物件的引用計數器值為0時,物件占用的記憶體就會被系統**。換句話說,如果物件的計數器不為0,那麼在整個程式執行過程,它占用的記憶體就不可能被**,除非整個程式已經退出
4.引用計數器的操作
給物件傳送一條retain訊息,可以使引用計數器值+1(retain方法返回物件本身)給物件傳送一條release訊息,可以使引用計數器值-1。可以給物件傳送retaincount訊息獲得當前的引用計數器值
@inte***ce person : nsobject
@end
@implementation person
//當乙個person物件被**的時候,就會自動呼叫
這個方法。
- (void)dealloc
@end
/* 1.方法的基本使用
retain ,
計數器+1 返回物件本身
release
,計數器-1 沒有返回值
retaincount
: 獲取當前計數器的值
dealloc
*
當乙個物件要**的時候就會呼叫
*
一定要呼叫[super dealloc].而且放在最後面
2概念1.
野指標: 指向殭屍物件(不可用)的指標,給野指標傳送訊息會報錯。(exc_bad_access)
2
殭屍物件 :所占用記憶體以及被**的物件,殭屍物件不能再使用
3
空指標 : 沒有指向任何東西的指標(儲存的東西是nil null,0),給空指標傳送訊息不會報錯
3.retain
方法會返回物件本身
*/
int main()
----------------------
asp.net+unity開發、
.net培訓、期待與您交流! ----------------------詳細請檢視:
www.itheima.com
黑馬程式設計師 OC基礎 記憶體管理
oc的區域性變數在 塊結束時被系統銷毀,記憶體被 oc的物件,內部有引用計數器,當引用計數器的值為0時,被系統銷毀,記憶體被 區域性變數存放在棧中.物件存放在堆中.注意,物件指標還是存放在棧中,物件本身占用的記憶體存放在堆中.在oc中,我們要對自己寫的繼承了nsobject的物件進行記憶體管理.物件...
黑馬程式設計師C 基礎知識(2)
windows phone 7手機開發 net培訓 期待與您交流!在程式中解釋 段的作用說明。三種注釋符 一 單行注釋符 這裡是說明 從 開始到本行結束 二 多行注釋符 這裡是說明 以 開始以 結束 三 文件注釋 用於對類和方法進行注釋,在類和方法前面連續輸入 將自動生成 這裡表示類或方法的說明 u...
黑馬程式設計師 c 基礎知識梳理
asp.net unity開發 net培訓 期待與您交流!一 常用資料型別 1 整型 int 2 非整型 double,decimal 3 非數值型 char,string,bool 等。二 各型別命名規則 1 變數命名規則 必須以字母 或 符號開頭 後面可以跟任意字母 數字或下劃線 不要與系統中的...