簡體   English   中英

什么時候發布[[NSMutableData數據]保留]?

[英]When does [[NSMutableData data] retain] is released?

我曾經在許多代碼中看到過[[NSMutableData data]保留]指令,但我不知道何時釋放保留的對象...您能幫我理解嗎?

提前謝謝

斯蒂芬

簡短的答案是:直到您釋放它,它才會被釋放。 您已經增加了保留計數,並且這樣做了,您承擔了以后釋放它的責任。

您可能已經看到的一種情況是人們直接分配給ivars。 當包含對象被銷毀時,或者在重新分配ivar時,發布應在-dealloc 但是無論哪種情況,您都必須記住這樣做,否則您的代碼將泄漏。

不是。 漏了

[NSMutableData data]已經自動釋放-它將在當前自動釋放池的末尾(即在大多數情況下,當前運行循環迭代的末尾)釋放。通過發送-retain消息,您可以告訴它保留更長的時間,但是沒有相應的-release消息,它將永遠不會有0的保留計數,因此永遠不會被釋放。

當您將[NSMutable數據]的保留計數加1時,它才被釋放。 通過使用[[NSMutable data] retain]您可以在保留數上添加一個,而釋放它,則可以從保留數中減少一個。 因此,在使用完它(在dealloc方法中)后,請釋放它。

暫無
暫無

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

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