黑馬程式設計師 iOS開發之OC之記憶體管理

2021-06-26 14:04:50 字數 1432 閱讀 5011

1> retain : +1

2> release :-1

3> retaincount : 獲得計數器

1> set方法的實現

- (void)setcar:(car *)car

}2> dealloc方法的實現(不要直接呼叫dealloc,系統自動呼叫)

- (void)dealloc

1>

oc物件型別

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

@property(nonatomic, retain) car *car;

@property(nonatomic, retain) idcar;

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

- (void)dealloc

2>非oc

物件型別(int\float\enum\struct)

@property(nonatomic, assign)

型別名稱

屬性名;

@property(nonatomic, assign) intage;

1.系統自帶的方法中,如果不包含alloc、new、copy,那麼這些方法返回的物件都是已經autorelease過的,不用再呼叫release釋放。

[nsstring stringwithformat:....];

[nsdate date];

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

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

arc的判斷準則:只要沒有強指標指向的物件,就會釋放物件

1.arc特點

1> 不允許呼叫release 、retain、retaincount

2> 允許重寫dealloc,但是不允許呼叫[super dealloc];

3> @property的引數

* strong:成員變數是強指標(適用於oc物件型別)

* weak: 成員變數是弱指標(適用於oc物件型別)

* assign:

適用於非oc物件型別

4> 把retain改為strong就行了,其他一切不變。

@property (nonatomic, strong) nsstring* name;

@property (nonatomic, assign) int age;

指標分2種:

1> 強指標:預設情況下,所有的指標都是強指標關鍵字__strong修飾注意:下劃線是2個

2> 弱指標:__weak;arc機制會把,只要弱指標指向的物件不存在,就會把弱指標清nil,防止野指標錯誤。

當兩端迴圈引用的時候,解決方案:

1>arc

一端用strong,另一端用weak

2>非arc

一端用retain,另一端用assign

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

記憶體管理 01 為什麼要記憶體管理?記憶體管理可謂是oc裡面最重要的環節,因為早前開發ios程式的,在網上沒有學習資源,就去買相關的書籍,自己就去摸索,當時只注重功能的實現,沒有重視記憶體管理,所以那時候的好多開發者都在記憶體管理上吃了不少虧。開發者如果不重視記憶體管理,在寫 的過程中,就會發現寫...

黑馬程式設計師 OC基礎

asp.net unity開發 net培訓 期待與您交流!1.import的用途 1 跟 include一樣,拷貝檔案的內容 2 可以自動防止檔案的內容被重複拷貝 2.import nsobjcruntime.h中有nslog函式的宣告,一般用 3.foundation框架標頭檔案的路徑 4.主標頭...

黑馬程式設計師 OC封裝

物件導向的三大特性 封裝 繼承和多型 在開發過程中,考慮到安全性要求,我們一般不在成員變數名前面使用 public protected等關鍵字修飾,而是使用set方法來為物件提供成員變數的值。set方法的內部也可以對一些不合理的賦值進行篩選過濾。set方法的作用 為外界提供乙個設定成員變數值的方法 ...