一、計數器的基本操作
1> retain : +1
2> release : -1
3> retaincount : 獲得計數器
二、set方法的記憶體管理
1> set方法的實現
}2> dealloc方法的實現(不要直接呼叫dealloc)
三、@property引數
1> oc物件型別
@property (nonatomic, retain) 類名*屬性名;
@property (nonatomic, retain) car *car;
@property (nonatomic, retain) id car;
// 被retain過的屬性,必須在dealloc方法中release屬性
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的物件
arc的判斷準則:只要沒有強指標指向物件,就會釋放物件
1.arc特點
1> 不允許呼叫release、retain、retaincount
2> 允許重寫dealloc,但是不允許呼叫[super dealloc]
3> @property的引數
* strong : 成員變數是強指標(適用於oc物件型別)
* weak : 成員變數是弱指標(適用於oc物件型別)
* assign : 適用於非oc物件型別
4> 以前的retain改為用strong
指標分2種:
1> 強指標:預設情況下,所有的指標都是強指標_strong
2> 弱指標:_weak
當兩端迴圈引用的時候,解決方案:
1> arc
一端用strong,另一端用weak
2> 非arc
一端用retain,另一端用assign
總結 記憶體管理
上下限暫存器 在cpu中設定上下限暫存器,用於分別存放作業在主存中的上限和下限位址 界位址暫存器 界位址暫存器存有程序的最大邏輯位址,若不越界,加上重定位暫存器 存有程序的起始實體地址 的值即為實體地址 編譯鏈結 裝入固定式分割槽 程式適應分割槽 可變式分割槽 分割槽適應程式 單一佇列分配方式 多佇...
iOS 記憶體管理總結
一 自動釋放池 自動釋放池,任何標記為自動釋放並因此新增到池中的物件,將在池本身被釋放的同時也自動釋放,程式可以有多個自動釋放池,它們還可以是巢狀的。如果程式在執行時將產生大量的臨時物件,就可能需要在程式中建立多重自動釋放池。例如 for inti 0 i 1000000 i 在執行此段 的時候會有...
自動管理記憶體總結
總結 前提條件 物件都是有引用計數且是被強指標指向的 1 mrc,有autoreleasepool的情況下 所有建立出來的新物件都需要被釋放 2 mrc,沒有autoreleasepool的情況下 mrc不自動生成 全手動 所有建立出來的新物件都需要被釋放 3 arc,有autoreleasepoo...