我有一个创建字典的for循环,然后我将字典附加到数组中。我将字典附加到数组,因为我不知道如何使用相同的键添加多个值,当我在for循环中执行该操作时,键/值对刚刚更新,旧的键/值对删除将数组更改回字典的最佳方法是什么?
import UIKit
class ViewController: UIViewController {
var jobTitle = ""
var jobDescription = ""
var dict:[String: AnyObject] = ["jobTitle": "jobTitle", "jobDescription": "jobDescription"]
var tArray = [[String: AnyObject]]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
for var i = 0; i < 3; ++i {
jobTitle = "job1"
jobDescription = "Desc1"
dict["jobTitle"] = "job1"
dict["jobDescription"] = "Desc1"
tArray.append(dict)
}
println("\(tArray)")
}
}
答案 0 :(得分:0)
您调用相同的任务,例如
jobTitle = "job1"
在循环的每次迭代中。当然,变量将始终包含相同的值。 dict
也是如此。这是一个伊娃,所以你一直在覆盖它。
您想要的是创建一个类型为[String: AnyObject]
的新集合,以添加到您的数组中。
let newDict:[String : AnyObject] = [titleKey : titleText,
descriptionKey : descriptionText]
tArray.append(newDict)
答案 1 :(得分:0)
就像这样,你有多个与每个键相关联的值:
let jobnames = ["j1", "j2", "j3"]
let jobdescs = ["d1", "d2", "d3"]
var dict : [String:[String]] = [:]
for index in 0..<3 {
if nil == dict["jobTitle"] { dict["jobTitle"] = [] }
if nil == dict["jobDesc" ] { dict["jobDesc" ] = [] }
dict["jobTitle"]!.append(jobnames[index])
dict["jobDesc" ]!.append(jobdescs[index])
}
这是输出: