2012-04-09 57 views
0

我的應用程序沒有崩潰。當我創建DDXMLDocument的autorelease對象時,我的應用程序崩潰了

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:]

enter image description here

回答

1

你不給足夠的代碼可以肯定地說,但是這是幾乎可以肯定,你使用它之前,你的DDXMLDOcument *(d)被釋放的情況下。

嘗試開啓殭屍檢測並在異常中放置斷點。通常情況下,這可能會導致您遇到問題所在的確切代碼行。

調試的另一個竅門是創建DDXMLDocument的子類並覆蓋ALLOC和RELEASE以調用NSLog()事件(然後[super alloc][super release]!),以便您可以觀察發生了什麼。

相關問題