oc記憶體管理

2021-07-02 13:10:02 字數 527 閱讀 3319

1.記憶體管理的本質:大家都知道在c語言中,指標變數是放在堆區的,那麼對應的在oc中,物件也相當於乙個指標變數,那麼它也放在堆區,和其他資料型別有所區別.當**塊結束時這個**塊中所涉及的變數會被**,指向物件的指標也會被**,此時,物件沒有指標指向,但依舊存在於記憶體中,會造成記憶體洩露

2.記憶體管理的範圍:任何繼承自nsobject的物件

3.物件的基本結構:每個oc物件都有自己的引用計數器,是乙個整數表示物件被引用的次數,即現在有多少東西在使用這個物件。物件剛被建立時,預設計數器值為1,當計數器的值變為0時,則物件銷毀。在每個oc物件內部,都專門有4個位元組的儲存空間來儲存引用計數器

4.計數器的作用:判斷物件要不要**的唯一依據就是計數器是否為0,若不為0則存在

5物件的銷毀:物件引用計數器為0時,物件被銷毀.銷毀時向系統傳送乙個dealloc訊息,一般情況下會重寫dealloc方法,但[super dealloc]必須放在最後.在物件被銷毀時呼叫dealloc方法,但不直接呼叫

6計數器應用規則:誰建立,誰release.誰retain,誰release

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

OC 記憶體管理

管理範圍 任何繼承nsobject的物件,對其他的基本資料型別無效。判斷物件要不要 的唯一依據就是計數器是否為0,若不為0則存在。所以對記憶體的管理就是對計數器的管理 1 retain 計數器 1,會返回物件本身 2 release 計數器 1 沒有返回值 3 retaincount 獲取當前的計數...