My app did't crashed.
DDXMLDocument *d = [[DDXMLDocument alloc] initWithData:abookConnData options:0 error:nil];
books = [d nodesForXPath:@"abooks/abook" error:nil];
I changed object of DDXMLDocument to autorelease and my app began crashed. But Why?
DDXMLDocument *d = [[[DDXMLDocument alloc] initWithData:abookConnData options:0 error:nil] autorelease];
books = [d nodesForXPath:@"abooks/abook" error:nil];
My app crashed in the DDXMLNode. [DDXMLNode XMLStringWithOptions:]
You don't give enough code to say for sure, but this is almost certainly a case where your DDXMLDOcument* (d) is being released before you use it.
Try turning on Zombie detection and also put a breakpoint on Exception. Often, that can lead you to the exact line of code where the problem is.
Another trick for debugging is to create a subclass of DDXMLDocument and override ALLOC and RELEASE to call NSLog() the event (then [super alloc]
or [super release]
!) so you can watch what's happening.