我将尝试尽快解释我的问题是什么......
我正在加载一个 XML 文件(使用 touchXML)来用数据填充 UITableView。
expositions = [[NSMutableArray alloc] init];
// Get XML string from XML document.
NSString *xmlURL = EXPOSITION_XML_DOC;
NSString *xmlString = [NSString stringWithContentsOfURL:[NSURL URLWithString:xmlURL]];
NSString *xmlStringUTF8 = [NSString stringWithUTF8String:[xmlString UTF8String]];
CXMLDocument *xmlDoc = [[CXMLDocument alloc] initWithXMLString:xmlStringUTF8 options:0 error:nil];
// Parse XML document.
NSArray *expos = [xmlDoc nodesForXPath:@"/expositions/exposition" error:nil];
if (expos != nil && [expos count] >= 1)
{
// create Exposition instances with data from xml file
for (CXMLElement *expo in expos)
{
NSString *date = [[[[expo attributeForName:@"date"] stringValue] copy] autorelease];
NSString *name = [[[[expo attributeForName:@"name"] stringValue] copy] autorelease];
NSString *place = [[[[expo attributeForName:@"place"] stringValue] copy] autorelease];
NSLog(@"hello , %@, %@, %@", date, name, place);
Exposition *e = [[Exposition alloc] initWithDate:date name:name place:place];
[expositions addObject:e];
NSLog(@"%@", e.name);
}
}
在 for 循环结束时,您可以看到输出了一些刚刚传递的数据,并且在返回解析的 XML 数据的 NSLog 中运行良好。
但是当我尝试访问数组时
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
像这样...
// get exposition data for this row
Exposition *e = [expositions objectAtIndex:indexPath.row];
NSString *str = e.name;
NSLog(@"%@", str);
我得到一个错误!我不明白为什么。我在解析的 XML 数据中有一些德语变音符号,但我定义了 UTF-8 编码,所以这应该不是问题。但如果是,请告诉我一个修复。或者其他任何可能的问题......