我得到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