我使用initWithNibName來加載詳細信息視圖。我只是在想這些東西是否需要發佈呢? init基本上增加了1的保留計數?initWithNibName需要發佈
回答
@Mel:
是的,你需要釋放它們。
從蘋果公司的Doumentation A部分:
你擁有的任何對象創建
您創建使用名稱以「黃金」,「新」,「複製」對象的方法,或「mutableCopy」(例如,alloc,newObject或mutableCopy)。
但是,它與initWithNibName
沒有任何關係,但它與分配'mutableCopy','copy','retain'和'alloc'的內存有關。所以希望現在你很清楚。
init
關鍵字只是初始化一個對象。內存分配做雖然alloc
或retain
或copy
或mutableCopy
關鍵字
而且你正在談論的1擋計數是因爲alloc
關鍵字,而不是initWithNibName
的。
希望這可以幫助你。
是的。閱讀this section。以init...
開頭的任何內容都會爲您提供一個您擁有的對象。
Nit:「init ...」不會創建對象。 「alloc」創建對象,「init ...」初始化它,並且我相當肯定(但不確定)它是保留對象的「alloc」。但是(除非在非常奇怪的情況下)你不能沒有另一個,所以你的陳述在大多數情況下足夠接近真相。 –
好吧,我將「創建」更改爲「給你」。滿足? – Yuji
滿足一頭母牛。 –
有問題的部分:在創建 您使用的方法 名稱以「黃金」,「新」,「複製」創建一個對象,或「
你擁有的任何對象mutableCopy「(對於 示例,alloc,newObject或mutableCopy)。
您可以使用保留 一個物體的所有權接收的對象通常是保證它收到 方法內仍然有效,而且方法也可以安全地將對象返回到它的調用。 [...]
當你不再需要它,你必須放棄一個對象 的所有權你自己 您通過發送釋放 消息或自動釋放消息的放棄對象的所有權。在Cocoa術語中,放棄對象的所有權因此通常被稱爲「釋放」對象的 。
您不得放棄您不屬於自己的對象的所有權這是 只是以前的政策規則的必然結果,明確指出。
一般,但是,你應該避免思維保留數方面,重點所有權。如果你擁有它,它取決於你釋放它。
- 1. Git發佈需要返回發佈
- 2. 需要發佈UIWebView委託?
- 3. 我的店需要發佈嗎?
- 4. 我是否需要發佈xib資源?
- 5. 發佈需要大量內存的popover
- 6. 停止發佈HTML,除非需要
- 7. RPM需要準確發佈標籤
- 8. 使用ARC,需要發佈CGMutablePathRefs嗎?
- 9. 從控制器發佈。需要幫助
- 10. 您是否需要發佈@property?
- 11. 需要在AppDelegate中發佈什麼?
- 12. 發佈操作需要Rails授權嗎?
- 13. Iphone:需要發佈使用ASIFormDataRequest
- 14. 需要在html中發送布爾值
- 15. 我需要在ARC下發布CGColorSpaceRef嗎?
- 16. $ _POST []我需要發佈到論壇?
- 17. dispatch_queue_t需要使用dispatch_release()發佈?
- 18. 需要從Android發佈JSON對象
- 19. 需要發佈IBOutlet對象嗎?
- 20. 需要Jquery文件發佈幫助
- 21. 需要發佈到PHP和jQuery數組?
- 22. ios7 initWithNibName
- 23. 發現需要
- 24. Filehelpers發佈發行文件,而不需要DLL
- 25. 我需要從工作燈適配器發送發佈請求
- 26. Admob需要未發佈的應用程序的市場URL(需要MY_AD_UNIT_ID)
- 27. 我需要哪個CMS?需要很容易發佈某種帖子
- 28. 需要發佈我的應用的Google Play更新需要多少時間?
- 29. 需要驗證。您需要登錄到您的Google帳戶。應用發佈後
- 30. 按需發佈api?
當然,你也可以用[NSMutableArray數組]來創建一個對象,但是你不需要'釋放'它。區別在於用'retain'(alloc/copy/et al)創建的對象和用額外的'autorelease'(幾乎所有其他)創建的對象之間的區別。 –