2010-10-08 91 views
0

所以我想知道是否這是一個普遍的問題是使用NSData泄漏內存來存儲連接響應數據。例如,我有這樣的行初始化我的數據對象NSURLConnection和NSData泄漏內存

davData = [[NSMutableData data] retain]; 

,然後在連接錯誤或完成加載,我將其釋放。根據我的理解,這不應該是一個泄漏正確的?出於某種原因,即使我釋放它後,數據仍然顯示在樂器中。任何想法可能會造成這種情況?謝謝!

回答

0

嘗試初始化它是這樣的:

davData = [[NSMutableData alloc] init]; 

你正在做它並沒有真正建立一個泄漏的方式,但它是依賴你的對象被系統自動釋放這可能是爲什麼你仍然可以看到它。

+0

唯一的問題是它試圖追加數據後崩潰。我認爲在此之前的某個時候,它會從池中自動釋放...現在我遇到的相反問題。 – gabaum10 2010-10-08 14:26:17

+0

蘋果文檔說,應該保留這一點。我只是不知道如何正確釋放它,所以它不會停留在周圍。我懷疑當我在連接完成加載時用這些數據初始化一個XML解析器時會發生這種情況...... – gabaum10 2010-10-08 14:29:23

+0

只要你分配它,它就不會被自動釋放,你可以嘗試在xml解析完成時釋放它。 – Ben 2010-10-08 14:38:05