2010-01-12 46 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