1、原則分析
(1) 只要物件還在被使用,系統就不會**物件占用的記憶體。
(2) 當你使用物件的時候,就呼叫 retain 方法,使物件的計數器+1。
(3) 當你不再使用物件的時候,就呼叫 release 方法,使物件的計數器-1。
2、記憶體管理原則
(1)誰建立,誰release
1> 如果你通過
alloc 、new、或[mutable]copy來建立乙個物件,那麼你必須呼叫 release 或autorelease。
2> 換句話說,不是你建立的,就不需要你去 release 或 autorelease。
(2)誰retain,誰release
只要你呼叫了 retain,無論這個物件是如何生成的,你都要呼叫release。
(1)有始有終,有加就有減
(2)曾經讓物件的計數器+1,就必須在最後讓物件計數器-1
看見alloc,就要有release的衝動!
關於OC記憶體管理 03
1.對於上篇文章,物件的例項變數 oc物件型別 的setter方法,只是執行一次retain操作,則這個程式是有缺陷的。可以想到的是,如果我們不小心在main.m裡多執行了一次 p.book b,則我們又執行了一次retain操作,此時計數器又加上了1,不符合記憶體管理原則。但是如何修改呢。我們可以...
Oc 記憶體管理
1 對你自己擁有的物件負責,你只能釋放你擁有的物件 2 凡是你通過 retain alloc copy等手段獲得了所有者的物件,都必須在你不使用的時候來呼叫release autorelease等手段來釋放對他的所有權 3 在一定的 段內,對同乙個物件所作的copy alloc retain的操作次...
OC記憶體管理
1.記憶體管理原則 如果對乙個物件使用了alloc mutable copy retain,那麼你必須使用相應的release或者autorelease。2.管理範圍 任何繼承了nsobject 的物件,對其他基本資料型別 int char float double struct enum等 無效 ...