arc是自ios 5之後增加的新特性,完全消除了手動管理記憶體的煩瑣,編譯器會自動在適當的地方插入適當的retain、release、autorelease語句。大大的簡化了開發的複雜度並且也提高了開發效率
arc 的規則:只要還有乙個
強指標變數指向物件
,物件就會保持在記憶體中
預設所有例項變數和區域性變數都是強指標
弱指標指向的物件被**後,弱指標會自動變為nil
指標,不會引發野指標錯誤
不能呼叫release、retain、autorelease、retaincount
可以重寫dealloc,但是不能呼叫[super dealloc]
property : 想長期擁有某個物件,應該用strong,其他物件用weak
其他基本資料型別依然用assign
兩端互相引用時,一端用strong、一端用weak
IOS開發中的記憶體管理(一)
所能占用的記憶體是有限制的。所占用的記憶體較多時,系統會發出記憶體警告,這時得 一些不需要再使用的記憶體空間。管理範圍 任何繼承了 nsobject 的物件,對其他基本資料型別 int char float double struct enum 等 無效 每個oc 物件都有自己的引用計數器,是乙個整...
ios開發記憶體管理要點
一 使用nsmutablearray例項時的三個記憶體管理要點 1.物件加入nsmutablearray例項時,物件會收到retain訊息 陣列物件會成為該物件的擁有方,並得到乙個指向該物件的指標。2.物件從nsmutablearray例項移出時,會收到release訊息 陣列物件會放棄該物件的所有...
iOS開發 記憶體管理之記憶體分配
下面舉個例子說明下 nsstring string string nsstring alloc initwithstring hello ios 這裡string其實就是乙個指標,oc中除了基本資料型別之外的變數型別都是指標型別,oc物件都是通過指標進行操作的。第一段 定義了nsstring型別的指...