自動引用計數器 五 strong與weak

2021-08-21 17:07:03 字數 562 閱讀 5734

首先這裡是一片比較基礎的部落格:

我在這裡再補充幾句。

物件被廢棄時候會進行一下幾步操作:

(1)從weak表中獲取廢棄物件的位址為鍵值的記錄。

(2)將包含在記錄中的所有__weak修飾符變數的位址,賦值為nil。

(3)從weak表中刪除記錄。

(4)從引用計數器表中刪除廢棄物件的位址為鍵值的記錄。

由上述過程可知,如果有大量附有__weak修飾符的變數,最會消耗相應的cpu資源。良策是只在需要避免迴圈引用時候使用__weak修飾符。

再比如:

相應地,變數o所賦值的物件也就註冊到autoreleasepool中5次。

解決方法就是:

在「temp=0」時候物件僅登入到autoreleasepool中1次。

自動引用計數器 一

自動引用計數器是指記憶體管理中引用採取自動計數的計數。一.記憶體管理的思考方式 思考方式分為四類 1.自己生成的物件,自己所持有。2.非自己生成的物件,自己也能持有。3.不在需要自己持有的物件時候釋放。4.非自己持有的物件無法釋放。生成並持有物件 alloc new copy mutablecopy...

引用計數器 與 記憶體管理

一 引用計數器的基本操作 1.方法的基本使用 1 retain 計數器 1,會返回物件本身 2 release 計數器 1,沒有返回值 3 retaincount 獲取當前的計數器的值 4 dealloc 當乙個person物件被 的時候,就會自動呼叫這個方法 void dealloc 2.概念 1...

自動引用計數

每當你產生乙個物件,arc分配一大塊控制項去儲存這個物件。除此之外,當乙個物件是不在需要,arc 將會收回這個例項物件所佔的空間。如果乙個物件的空間被釋放掉,但是你任然通過物件的引用呼叫方法或者屬性,你的程式將要崩潰。為了不讓物件被釋放掉 arc將會追蹤有多少屬性 常量 變數正在引用這個物件。只要有...