2010-03-01 46 views
1

這是我的理解是:這是可可參考計數的正確總結嗎?

對象是只有保留(參考計數器遞增):

  1. 當從NSObjectinit被調用。
  2. retain被調用。

對象是釋放(參考計數器遞減):

  1. release被調用。
  2. 當包含對象的自動釋放池排出

,並澄清,自動釋放不保留,只是會在對象進入自動釋放池堆棧頂部的最池。

回答

3

init不保留,並有你沒有提到它做的各種方法。 Memory Management Programming Guide for Cocoa有一個簡單的(也是正確的)總結。

(有兩個例外,我所知道的:在NSPropertyListSerialization方法,它通過提供一個參考保留錯誤字符串)

+1

的NSPropertyListSerialization文檔明確地告訴你,有問題的方法打破規則了。 – Chuck 2010-03-01 20:57:28

+1

另一個很好的總結是在可可核心競爭力:http://developer.apple.com/mac/library/documentation/General/Conceptual/DevPedia-CocoaCore/MemoryManagement.html – 2010-03-01 21:41:27

+1

正如彼得自己的http://boredzo.org/ cocoa-intro/ – 2010-03-01 22:46:03