Кажется, в вашем коде есть несколько ошибок.
Изменяемая строка xmlString
неправильно инициализирована, в строке:
xmlString = [NSMutableString alloc]; // wrong
Это должно выглядеть так: xmlString = [[NSMutableString alloc] initWithCapacity:X];
.
Кроме того, когда анализатор находит символы, вы заменяете всю существующую изменяемую строку вместо добавления их к существующему содержимому или пытаетесь сделать это, потому что в соответствии с кодом вы просто сравниваете адрес памяти и теряете результат (==
).
// wrong
xmlString == (NSMutableString *)[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Это должно выглядеть так:
[xmlString appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
Наконец, в didEndElement
, я не уверен, чего вы пытаетесь достичь, но вы добавляете ссылку на строковый объект в массив, а затем устанавливаете текст метки для отображения содержимого массива ... до тех пор, пока так как изменяемый массив хорошо распределен и инициализирован (в чем я действительно не уверен), метка должна отображать как минимум содержимое массива. Но вы можете подумать о том, чтобы «очистить» изменяемую строку ([xmlString setString:@""];
) и не распределять ее по каждому элементу.
РЕДАКТИРОВАТЬ :
attributeDict
отображает имена атрибутов как ключи с их значениями. Я думаю, к вашему значению атрибута можно получить доступ через [attributeDict objectForKey:@"myData"];
.