当我创建DDXMLDocument的自动释放对象时,我的应用程序崩溃了

时间:2012-04-09 20:40:51

标签: ios crash kissxml

我的应用没有崩溃。

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

我将DDXMLDocument的对象更改为autorelease,我的应用程序开始崩溃。但是为什么?

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

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

enter image description here

1 个答案:

答案 0 :(得分:1)

您没有提供足够的代码来确定,但这几乎肯定是在您使用它之前发布DDXMLDOcument *(d)的情况。

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

调试的另一个技巧是创建DDXMLDocument的子类并覆盖ALLOC和RELEASE以调用NSLog()事件(然后[super alloc][super release]!),这样你就可以看到发生了什么。