引用計數(shù)器

對象一出生引用計數(shù)器就為1
一個對象引用計數(shù)器為0時才會被釋放

給一個對象發(fā)送一條retain 計數(shù)器+1
發(fā)送一個release給對象,計算器-1

dealloc方法

一般會重寫dealloc方法,在這列是方法相關(guān)資源,dealloc就
//問題1:什么是引用計數(shù)器?
答:
對象被指針指向或被使用的次數(shù)
每個OC對象都有自己的引用計數(shù)器,它是一個整數(shù),表示有多少人正在用這個對象
//問題2:引用計數(shù)器的作用?
答:
計算對象被使用次數(shù)
當使用alloc、new或者copy創(chuàng)建一個對象時,對象的引用計數(shù)器默認就是1
當對象的引用計數(shù)器為0時,對象占用的內(nèi)存就會被系統(tǒng)回收
如果對象的計數(shù)器不為0,那么在整個程序運行過程,它占用的內(nèi)存就不可能被回收(除非整個程序已經(jīng)退出 )
//問題3:怎么操作引用計數(shù)器?
答:
給對象發(fā)送一條retain消息,可以使引用計數(shù)器值+1(retain方法返回對象本身
給對象發(fā)送一條release消息, 可以使引用計數(shù)器值-1
給對象發(fā)送retainCount消息, 可以獲得當前的引用計數(shù)器值

需要注意的是: release并不代表銷毀\回收對象, 僅僅是計數(shù)器-1
alloc new copy retain 會增加對象的引用計數(shù)器一次
release能減少對象的引用計數(shù)器一次
//問題4:dealloc 方法的作用?
當對象的引用計數(shù)器為0時,對象就會被釋放,在對象被釋放前就會調(diào)用這這個方法
對象即將被銷毀時系統(tǒng)會自動給對象發(fā)送一條dealloc消息
(因此, 從dealloc方法有沒有被調(diào)用,就可以判斷出對象是否被銷毀)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容