【发布时间】:2010-01-12 10:59:33
【问题描述】:
我使用从 Internet 获得的可变数据初始化我的 NSXMLParser。我想知道解析器是在释放时释放它还是我必须在解析后释放它?
谢谢
【问题讨论】:
标签: cocoa cocoa-touch memory-management nsxmlparser
我使用从 Internet 获得的可变数据初始化我的 NSXMLParser。我想知道解析器是在释放时释放它还是我必须在解析后释放它?
谢谢
【问题讨论】:
标签: cocoa cocoa-touch memory-management nsxmlparser
Cocoa 使用“这不是我的问题”来比喻内存管理。
如果您将某些内容传递给另一个对象,则该对象有责任保留它。
如果将某些内容传递给您的某个对象,您需要保留它,否则它可能会消失。
一般传递如下对象:
[otherObject doSomethingWith:[myThing autorelease]];
或
[otherObject doSomethingWith:myThing];
[myThing release];
Cocoa 框架遵循这一原则,您应该以同样的方式设计您的类。
【讨论】:
如果您保留了它,并且不再使用它,请释放它。 NSXMLParser 很可能会保留数据本身并在完成后释放它。
【讨论】: