我正在解析一个大的xml并将其存储到一个临时的核心数据表中。我的解析器didEndElement方法如下所示:
-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName{
if ([elementName isEqualToString:@"reference_number"]) {
[[self pdfDocument] setEducationDocumentReference:currentTextString];
}
if ([elementName isEqualToString:@"name"]) {
[[self pdfDocument] setEducationDocumentName:currentTextString];
}
if ([elementName isEqualToString:@"type"]) {
[[self pdfDocument] setEducationDocumentType:currentTextString];
}
if ([elementName isEqualToString:@"date"]) {
[[self pdfDocument] setEducationDocumentDate:[dateFormatter dateFromString:currentTextString]];
}
if ([elementName isEqualToString:@"url"]) {
[[self pdfDocument] setEducationDocumentURL:currentTextString];
//If I uncomment the following, the app will try finding the previous set
//values without any luck and crash.
//if (![pdfDocument documentExistsInTemporaryTable]) {
// [pdfDocument saveDocumentToTemporaryTable];
//}
}
}
它清楚地将每个值分开,并且应该在将对象保存到临时表之前将其存储到pdfDocument对象中,但是当我尝试访问pdfDocument的任何先前设置的值时,我得到一个EXEC_BAD_ACCESS来自我能看到的是因为它找不到以前的pdfDocument变量的值。
我确定我犯了一个菜鸟错误,但是有人可以启发我朝着正确的方向前进吗?
答案 0 :(得分:0)
使用相同指针指向同一对象的问题。我选择的解决方案是通过简单地复制currentTextString来为每个值设置不同的实例。