03 OC記憶體管理原則

2022-07-17 16:06:22 字數 485 閱讀 6966

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等 無效 ...