使用Swift / cocoa我正在创建一个输出XML文件的用户输入表单。 (初学者到上述所有。)
用户将添加多个目标,但在尝试创建多个“目标”时出现错误。
流程是:用户输入他们想要创建的目标数量(7,8或9)。每个目标都有用户输入的信息,因此有“x”个目标。我使用for循环但在尝试创建下一个目标时遇到错误。以下是我在操场上的代码。
(如果我取消注释//expedition.addChild(target),我收到错误。)
如何创建这些多个目标子项?
let root = NSXMLElement(name: "exploration_game")
let xmlFile = NSXMLDocument (rootElement: root)
let expedition = NSXMLElement(name: "expedition")
root.addChild(expedition)
expedition.addChild(NSXMLElement(name: "name", stringValue: ""))
expedition.addChild(NSXMLElement(name: "targets", stringValue: ""))
expedition.addChild(NSXMLElement(name: "difficulty", stringValue: ""))
expedition.addChild(NSXMLElement(name: "factoid", stringValue: ""))
expedition.addChild(NSXMLElement(name: "factoid_file", stringValue: ""))
let target = NSXMLElement(name: "target")
expedition.addChild(target)
for index in 1...3{
//expedition.addChild(target)
target.addChild(NSXMLElement(name: "target_title_en", stringValue: ""))
target.addChild(NSXMLElement(name: "target_title_sp", stringValue: ""))
target.addChild(NSXMLElement(name: "target_hint_en", stringValue: ""))
target.addChild(NSXMLElement(name: "target_hint_sp", stringValue: ""))
target.addChild(NSXMLElement(name: "target_description_en", stringValue: ""))
target.addChild(NSXMLElement(name: "target_descriptionsp", stringValue: ""))
target.addChild(NSXMLElement(name: "x", stringValue: ""))
target.addChild(NSXMLElement(name: "y", stringValue: ""))
target.addChild(NSXMLElement(name: "target_icon", stringValue: ""))
target.addChild(NSXMLElement(name: "target_somethin", stringValue: ""))
}
非常感谢帮助。
答案 0 :(得分:1)
您没有在循环中创建新目标。显然,如果要为探测添加多个目标,则需要为每次迭代创建一个新目标。
// set up expedition
for _ in 1...3 {
var target = NSXMLElement(name: "target")
// configure target
expedition.addChild(target)
}