OC中非ARC環境下的記憶體管理小記

2021-08-28 23:02:29 字數 1042 閱讀 9695

一、計數器的基本操作

1> retain : +1

2> release : -1

3> retaincount: 獲得計數器的值

二、set方法的記憶體管理

1> set方法的實現

-(void)setcar:(car *)car

if(_car != car)

[_car release];

_car  = car;

2> dealloc方法的實現(不要直接嗲用dealloc)

-(void)dealloc

[_car release];

[super dealloc];

三、@property引數

1> oc物件型別

@property (nonatomic,retain) 類名 *屬性名;

@property (nonatomic,retain) car *car;

@property (nonatomic,retain) id car;

//被retain過的屬性,必須在dealloc中release

-(void)dealloc

[_car release];

[super dealloc];

2> 非oc物件型別(int\float\enum\struct)

@property (nonatomic,assign) 型別名稱 屬性名;

@property (nonatomic,assign) int age;

四、autorelease

1.系統自帶的方法中,如果不包含alloc new copy,那麼這些方法返回的物件都是已經autorelease過的

[nsstring stringwithformat:.....];

[nsdate date];

2.開發中經常寫一些類方法快速建立乙個autorelease的物件

*建立物件的時候不要直接使用類名,應使用 self

+(id)car

return [[[self alloc] init] autorelease];

OC記憶體管理之ARC

除了特殊場合,使用arc是大勢所趨。因為這不僅能夠提高程式設計師的開發效率,讓程式設計師把精力專注在功能實現上,也大大節約了專案的開發成本,更提高了程式的可維護性。1.使用arc的重要關注點就是 物件是否有強指標指向,沒有強指標指向的物件會被系統自動 2.property關鍵字 強指標用strong...

OC的記憶體管理 二 ARC

指標 指向記憶體的位址 指標變數 存放位址的變數 指標變數值 變數中存放的值 位址值 指標變數指向的記憶體單元值 記憶體位址指向的值 1 強指標 預設的情況下,所有的指標都是強指標,關鍵字strong 2 弱指標 weak關鍵字修飾的指標 宣告乙個弱指標的格式 weak person p arc概念...

ARC下的記憶體管理

本文討論一下arc automatic referencing count 下的記憶體管理問題 例項變數是類的私有成員變數,無法被外部訪問,並且子類無法繼承。屬性以 property修飾,是封裝了getter setter方法的 成員變數 可以被外部訪問和被繼承。宣告屬性後,系統會生成乙個名為 pr...