Cocoa NSXMLParser对数据的所有权

Cocoa NSXMLParser对数据的所有权,cocoa,cocoa-touch,memory-management,nsxmlparser,Cocoa,Cocoa Touch,Memory Management,Nsxmlparser,我使用从internet获得的可变数据初始化NSXMLParser。我想知道解析器是在解除分配时释放它,还是在解析后我必须释放它 谢谢如果您保留了它,但不再使用它,请释放它。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。如果您保留了数据,但不再使用它,则将其释放。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。Cocoa将“这不是我的问题”比喻为内存管理 如果您将某个对象传递给另一个对象,则该对象有责任保留它 如果某个对象被传递给某个对象,则需要保留

我使用从internet获得的可变数据初始化NSXMLParser。我想知道解析器是在解除分配时释放它,还是在解析后我必须释放它


谢谢

如果您保留了它,但不再使用它,请释放它。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。

如果您保留了数据,但不再使用它,则将其释放。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。

Cocoa将“这不是我的问题”比喻为内存管理

如果您将某个对象传递给另一个对象,则该对象有责任保留它

如果某个对象被传递给某个对象,则需要保留它,否则它可能会消失

通常传递对象,如:

    [otherObject doSomethingWith:[myThing autorelease]];

Cocoa框架基于这一原则工作,您应该以同样的方式设计类。

Cocoa使用“这不是我的问题”隐喻来进行内存管理

如果您将某个对象传递给另一个对象,则该对象有责任保留它

如果某个对象被传递给某个对象,则需要保留它,否则它可能会消失

通常传递对象,如:

    [otherObject doSomethingWith:[myThing autorelease]];


Cocoa框架基于这一原则工作,您应该以同样的方式设计您的类。

谢谢您的回答,我应该在解析后释放它,还是不重要?我看到,如果我以前释放它,我会在未知选择器上崩溃,并且似乎解析器没有保留它。如果你保留了它,你应该在完成后释放它。这意味着在您将其传递给NSXMLParser之后。谢谢您的回答,我应该在解析之后释放它还是不重要?我看到,如果我以前释放它,我会在未知选择器上崩溃,并且似乎解析器没有保留它。如果你保留了它,你应该在完成后释放它。这意味着在您将其传递给NSXMLParser之后。