[英]does initWithNibName need to be released
我使用initWithNibName加載詳細信息視圖。 我只是想這些東西需要發布嗎? init基本上是添加1的保留計數?
是。 閱讀本節 。 任何以init...
開頭的東西都會給你一個你擁有的對象。
@Mel:
是的,你需要釋放它們。
來自Apple的Doumentation的一部分:
您擁有自己創建的任何對象
使用名稱以“alloc”,“new”,“copy”或“mutableCopy”開頭的方法(例如,alloc,newObject或mutableCopy)創建對象。
但是因為它與initWithNibName
無關,但它與四個單詞有關,這四個單詞分配的內容是'mutableCopy','copy','retain'和'alloc'。 所以希望你現在很清楚。
init
關鍵字只是初始化一個對象。 內存分配是通過alloc
或retain
或copy
或mutableCopy
關鍵字完成的
你所說的保留計數為1是因為alloc
關鍵字,而不是initWithNibName
。
希望這對你有所幫助。
有問題的部分:
您擁有自己創建的任何對象使用名稱以“alloc”,“new”,“copy”或“mutableCopy”開頭的方法(例如,alloc,newObject或mutableCopy)創建對象。
您可以使用retain獲取對象的所有權通常保證接收到的對象在接收到的方法中保持有效,並且該方法也可以安全地將對象返回給其調用者。 [...]
當您不再需要它時,您必須放棄您擁有的對象的所有權您通過向對象發送釋放消息或自動釋放消息來放棄對象的所有權。 因此,在Cocoa術語中,放棄對象的所有權通常被稱為“釋放”對象。
您不得放棄您不擁有的對象的所有權這只是之前明確規定的政策規則的必然結果。
但是,一般來說,您應該避免考慮保留計數並關注所有權 。 如果您擁有它,則由您來釋放它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.