Чтобы прочитать XML, взгляните на руководство NSXMLParser .Вы должны управлять структурой XML, но, по сути, когда вы получаете события чтения из анализатора, вам будет просто использовать текст, который он читает.
Предполагая, что ваш XML-файл выглядит как-тонапример:
<scene id=1>
<label id=1 text="Label Text" />
</scene>
<scene id=2>
<label id=2 text="Scene 2 Text" />
</scene>
У вас есть пара вариантов - вы можете анализировать файл каждый раз при загрузке сцены, игнорируя все, кроме внутренних элементов id = x (где x - это какая-то ссылка на сцену, связанная св id), или вы можете загрузить весь xml при запуске приложения и сохранить его в некоторой структуре.Я бы предпочел первый вариант.
В качестве базового примера (который еще лучше объясняется в документации, на которую я ссылался), ваша функция чтения элементов может сделать это:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ( [elementName isEqualToString:@"label"]) {
//attributeDict contains the attributes of the element,
//in your case, "text" is one of the keys, and "Label Text" would be the value
//this would pass the specific label text from the xml file to a function in your scene
[scene someFunctionForPopulatingLabel:[attributeDict objectForKey:@"text"]];
}
}