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方法的作用 為外界提供乙個設定成員變數值的方法 ...