我想根据XML文件的输出动态创建对象。我很抱歉,如果有关于这个问题的其他帖子,我甚至不知道这是什么。基本上我想创建一堆可以是任何类的对象。简而言之,当调用NSXMLParser的“didStartElement”时,我想创建一个类型为“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