2010-01-12 43 views
0

我使用可變數據初始化我的NSXMLParser,該數據來自Internet。我想知道解析器是否在解除分配時釋放它,或者我必須在解析後釋放它?對數據的NSXMLParser所有權

感謝

回答

2

可可用內存管理的「這不是我的問題」隱喻。

如果您將某些事物傳遞給另一個對象,則是對象有責任保留它。

如果有東西傳遞給您的某個對象,您需要保留它或它可能會消失。

一般傳似對象:

[otherObject doSomethingWith:[myThing autorelease]]; 

OR

[otherObject doSomethingWith:myThing]; 
    [myThing release]; 

Cocoa框架這一原則工作,你應該設計您的類以同樣的方式。

1

如果你保留它,你不再使用它,然後鬆開。 NSXMLParser很可能會保留數據本身,並在完成後釋放它。

+0

感謝您的回答,解析後我應該釋放還是無所謂?我看到,如果我之前釋放它,我會在未知選擇器上發生崩潰,似乎解析器不會保留它 – 2010-01-12 11:10:57

+0

如果您保留它,則應在完成後釋放它。這意味着在將它傳遞給NSXMLParser之後。 – 2010-01-12 12:31:25