我得到EXC_BAD_ACCESS在解析XML文件在我Xcode4 iPhone應用程序EXC_BAD_ACCESS用的NSXMLParser
雖然我在這裏讀了很多類似的錯誤問題,但無法弄清楚如何修復我的代碼!
墜毀在[解析器解析]
然後我啓用NSZombieEnabled並得到了以下錯誤:
*** -[CFString appendString:]: message sent to deallocated instance 0x588c3a0
以下是我的代碼相關分析部:
-(void)openXML {
NSURL *url = [NSURL URLWithString:@"http://localhost/news.xml"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:req delegate:self];
[con release];
}
-(void)parseXMLData:(NSData *)xmlData{
parser = [[NSXMLParser alloc] initWithData:xmlData];
parser.delegate = self;
[parser parse];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
xmlDocument = [[NSMutableData alloc] init];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[xmlDocument appendData:data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
[self parseXMLData:xmlDocument];
}
- (void)parserDidStartDocument:(NSXMLParser *)parser{
[offersData removeAllObjects];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
completeString = [[NSMutableString alloc] init];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
[offersData addObject:completeString];
[completeString release];
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[completeString appendString:string];
}
- (void)parserDidEndDocument:(NSXMLParser *)parser{
[offersTableView reloadData];
}
I現在正在工作,但只有當XML有1個元素和子元素時,如果我再添加1個元素則不解析:/ – DeZigny
請發佈一個導致問題的xml小樣本,並更詳細地解釋它如何不起作用如果崩潰什麼是錯誤和什麼行等)。 – Anna
我發現了這個問題,但不知道爲什麼!在導致此問題的元素之一中存在「&」符號,只要我刪除,我就可以正確獲取所有XML數據! – DeZigny