Я пытаюсь создать объекты динамически на основе вывода XML-файла. Мои извинения, если есть другие сообщения по этому вопросу, я даже не знаю, что это называется. В основном я хочу создать стек объектов, которые могут быть любого класса. В двух словах, когда вызывается «didStartElement» NSXMLParser, я хочу создать объект типа «elementName» и поместить его в стек объекта. Код ниже не работает, просто пытается проиллюстрировать то, что я пытаюсь выполнить. Обычно я просто добавлял объект objectStack.append (object) в качестве объекта ", но в этом случае я не знаю, каким будет тип объекта, пока элемент не будет проверен синтаксическим анализатором XML. Я считаю, что NSClassFromString - это способ сделать это, но он не работает.Swift: Создание динамического объекта
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
objectStack.append(NSClassFromString(elementName))
}
Любая помощь была бы принята с благодарностью. Даже если вы можете просто указать мне в правильном направлении.
Когда вы говорите, он не работает? Какая ошибка вы получаете? Я думаю, вам нужно на самом деле выделить & init объект, попробуйте 'objectStack.append (NSClassFromString (elementName)())' обратите внимание на дополнительный '()'. – sbarow
Просто решил проблему, я был очень близок. Мне просто нужно добавить имя проекта перед именем элемента. Рабочий код. – GED125