iOS 之記憶體管理

2021-08-19 09:48:20 字數 850 閱讀 5452

記憶體管理:誰建立,誰釋放,誰引用,誰管理。

加號方法的實質:減號方法建立物件,然後掉用乙個autorelease,把這個建立的物件的記憶體交給系統管理。

區域性變數內存在不用的時候進行釋放,全域性變數在dealloc方法中對他進行釋放。物件被釋放掉後會呼叫dealloc方法。

1.區域性變數的記憶體管理:不用的時候對它進行釋放。

2.全域性變數記憶體管理:dealloc方法裡面進行釋放。

3.由加號方法建立的物件不用對它進行記憶體管理。

4.加號方法的實質是:減號方法建立然後呼叫auto release方法把這個物件交給系統管理。

5.retain:物件型別的用它來修飾並且會使引用計數加一,assign:非物件型別的用它來修飾,copy:用來修飾字串的,也會使引用計數加一。

retain:保留計數,獲得到了物件的所有權,引用計數在原有基礎上加1.

copy:一般認為,是在記憶體中重新開闢了乙個新的記憶體空間,用來 儲存新的物件,和原來的物件是兩個不同的位址,引用計數分別為1。但是當copy物件為不可變物件時,那麼copy的作用相當於retain。因為,這樣可以節約記憶體空間

-(void)setpeople:(people *)p

}6.屬性記憶體管理:在dealloc方法裡面進行self.xx = nil;

7.新增到陣列裡面會使引用計數增加,push,模態彈出,addsubview,都會使引用計數增加的。

8.定時器,在介面消失的時候將定時器廢除。

9.通知,註冊乙個通知的話要進行移除在dealloc方法裡面進行移除。

文章有部分內容摘錄自 

iOS面試之 記憶體管理

記憶體管理 1.什麼是arc?arc是automatic reference counting自動引用計數,在程式編譯時自動加入retain release。在物件被建立時retain count 1,在物件被release時count 1,當count 0時,銷毀物件。程式中加入autorelea...

iOS開發 記憶體管理之記憶體分配

下面舉個例子說明下 nsstring string string nsstring alloc initwithstring hello ios 這裡string其實就是乙個指標,oc中除了基本資料型別之外的變數型別都是指標型別,oc物件都是通過指標進行操作的。第一段 定義了nsstring型別的指...

ios學習筆記之記憶體管理

一,記憶體管理型別定義 1,基本型別 任何c的型別,eg int,short,char,long,long long,struct,enum,union等屬於基本型別或結構體 記憶體管理對於c語言的基本型別無效 2,oc型別 非基本型別 任何繼承於nsobject類的物件都屬於oc型別 也就是除了c...