2012-10-09 49 views
1

我正在使用手動保留和發佈的項目。我在以下鏈接中遇到過與此相關的許多教程之一。iOS:在iOS開發中手動保留髮布

http://www.drdobbs.com/mobile/automatic-reference-counting-on-ios/240000820

我從上面的鏈接有點困惑。在'通過消息管理'標題下,他們提到我是否使用'alloc/init'會增加參考。如果我再次'保留'它,它再次增加併成爲'2',並再次使用'保留',現在變成'3',但他們是不是'釋放'三次完全釋放這個記憶,而不是他們只能釋放兩次。這怎麼可能?看到這個後我有點困惑。

+0

也許vdots表示額外的'release's? ;) – Cfr

回答

1

他們不僅釋放兩次,而且他們只是表明他們正在釋放,直到retainCount爲0,這是正確的。

+0

哦,明白了!那麼,如果如上所述計數增加到'3',我們必須「釋放」3次才能完全釋放它? – Daisy

+1

是的,這是正確的。如果保留三次,則必須釋放三次,這會將其保留計數遞減至0,從而釋放它! (如果我的知識是正確的) – MCKapur

+0

不,我沒有保留3次。我只保留兩次,但在alloc/init之前,所以總參考。計數是'3',這就是我所說的。所以,在這種情況下,正如我在我的問題參考文獻中提到的。計數變爲'3',我必須在適當的位置「釋放」它'3'時間? – Daisy