記憶體管理1retain和release

2021-09-21 11:50:50 字數 942 閱讀 1807

student.h:

#import @inte***ce student : nsobject  @property int age;  //缺省會生成乙個_age屬性  @end

student.m:

#import "student.h"  @implementation student //@synthesize age=_age;中可以不使用synthesise方法,直接在標頭檔案中使用property方法即可 //如果只在m檔案中定義而沒有在**件中申明的方法屬於privte方法,如果不寫型別一般預設是protected方法 -(void)dealloc @end

main:

#import #import "student.h"  int main(int argc, const char * ar**)      return 0; }

結果:2013-08-02 14:57:25.342 記憶體管理1retain和release[788:303] retaincount is 2

2013-08-02 14:57:25.344 記憶體管理1retain和release[788:303] retaincount is 1

2013-08-02 14:57:25.344 記憶體管理1retain和release[788:303] retaincount is 2

2013-08-02 14:57:25.344 記憶體管理1retain和release[788:303] student age is 10

2013-08-02 14:57:25.345 記憶體管理1retain和release[788:303] 被銷毀了

2013-08-02 14:57:25.345 記憶體管理1retain和release[788:303] _age 10

記憶體管理中的retain和release用法

範圍 任何繼承了nsobject 的物件,對基本資料型別無效。原理 1,每個物件內部都儲存了乙個與之相關聯的整數,稱為引用計數器。2,當使用alloc,new或者copy建立乙個物件時,物件的引用計數器被設定為1 3,呼叫物件的retain方法,可以使引用計數器值 1 呼叫物件的release方法,...

記憶體管理(1)

在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區 常量儲存區。棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個n...

記憶體管理(1)

記憶體管理 如果對乙個物件使用了alloc,mutable copy withzone 或者retain,那麼你必須使用相應的release或者autorelease。基本型別 任何c的型別 如 int,long,long long,struct等。記憶體管理對於c語言基本型別無效。oc型別 非基本...