0

我的应用程序没有崩溃。

DDXMLDocument *d = [[DDXMLDocument alloc] initWithData:abookConnData options:0 error:nil];
books = [d nodesForXPath:@"abooks/abook" error:nil];

我将 DDXMLDocument 的对象更改为自动释放,我的应用程序开始崩溃。但为什么?

DDXMLDocument *d = [[[DDXMLDocument alloc] initWithData:abookConnData options:0 error:nil] autorelease];
books = [d nodesForXPath:@"abooks/abook" error:nil];

我的应用程序在 DDXMLNode 中崩溃了。[DDXMLNode XMLStringWithOptions:]

在此处输入图像描述

4

1 回答 1

1

您没有给出足够的代码来肯定地说,但这几乎可以肯定是您的 DDXMLDOcument* (d) 在您使用它之前就已发布的情况。

尝试打开 Zombie detection 并在 Exception 上放置一个断点。通常,这可以引导您找到问题所在的确切代码行。

调试的另一个技巧是创建 DDXMLDocument 的子类并覆盖 ALLOC 和 RELEASE 以调用 NSLog() 事件(然后[super alloc][super release]!),以便您可以观察正在发生的事情。

于 2012-04-09T21:32:00.080 回答