Я постараюсь кратко объяснить, в чем моя проблема ...
Я загружаю файл 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 вы видите, что некоторые данные только что переданы, и они нормально работают в NSLog, возвращающем проанализированные данные XML.
Но когда я пытаюсь получить доступ к массиву в
- (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-данных есть немецкий umlauts , но я определил кодировку UTF-8, так что это не должно быть проблемой. Но если это так, пожалуйста, сообщите мне исправление. Или что еще может быть проблемой ...