簡體   English   中英

Alloc init保留嗎?

[英]Alloc init retain?

誰能解釋為什么這行代碼的保留計數:

[[[SomeClass alloc] init] retain] 

是兩個嗎 我只叫保留一次。

因為alloc給保留計數加1。 您應該閱讀Apple的《 內存管理編程指南》

保留計數為2,因為[alloc]也增加了保留計數。 嚴格來說,對象的保留計數不僅是您調用過的保留次數,還包括保留了多少東西。

如果創建對象,則使用名稱以alloc, new, copy or mutableCopy開頭的方法,或者retain對象,則其保留計數增加1

如果releaseautorelease對象,則其保留計數減少1

在示例代碼中, allocretain將保留計數增加1。

有關更多詳細信息,請參閱Apple的文檔:

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM