Cocoa NSXMLParser对数据的所有权
我使用从internet获得的可变数据初始化NSXMLParser。我想知道解析器是在解除分配时释放它,还是在解析后我必须释放它Cocoa NSXMLParser对数据的所有权,cocoa,cocoa-touch,memory-management,nsxmlparser,Cocoa,Cocoa Touch,Memory Management,Nsxmlparser,我使用从internet获得的可变数据初始化NSXMLParser。我想知道解析器是在解除分配时释放它,还是在解析后我必须释放它 谢谢如果您保留了它,但不再使用它,请释放它。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。如果您保留了数据,但不再使用它,则将其释放。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。Cocoa将“这不是我的问题”比喻为内存管理 如果您将某个对象传递给另一个对象,则该对象有责任保留它 如果某个对象被传递给某个对象,则需要保留
谢谢如果您保留了它,但不再使用它,请释放它。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。如果您保留了数据,但不再使用它,则将其释放。NSXMLParser很可能会保留数据本身,并在处理完数据后将其释放。Cocoa将“这不是我的问题”比喻为内存管理 如果您将某个对象传递给另一个对象,则该对象有责任保留它 如果某个对象被传递给某个对象,则需要保留它,否则它可能会消失 通常传递对象,如:
[otherObject doSomethingWith:[myThing autorelease]];
或
Cocoa框架基于这一原则工作,您应该以同样的方式设计类。Cocoa使用“这不是我的问题”隐喻来进行内存管理
如果您将某个对象传递给另一个对象,则该对象有责任保留它
如果某个对象被传递给某个对象,则需要保留它,否则它可能会消失
通常传递对象,如:
[otherObject doSomethingWith:[myThing autorelease]];
或
Cocoa框架基于这一原则工作,您应该以同样的方式设计您的类。谢谢您的回答,我应该在解析后释放它,还是不重要?我看到,如果我以前释放它,我会在未知选择器上崩溃,并且似乎解析器没有保留它。如果你保留了它,你应该在完成后释放它。这意味着在您将其传递给NSXMLParser之后。谢谢您的回答,我应该在解析之后释放它还是不重要?我看到,如果我以前释放它,我会在未知选择器上崩溃,并且似乎解析器没有保留它。如果你保留了它,你应该在完成后释放它。这意味着在您将其传递给NSXMLParser之后。