无法在Swift中向字典添加空数组

时间:2016-01-09 08:36:52

标签: ios arrays swift dictionary

我想填充一个包含3个空数组的字典,我正在使用这段代码:

定义:

var items: [String:[SomeRecord]] = [:]

代码:

self.items["1"] = []
self.items["2"] = []
self.items["3"] = []

"项目"在3个任务之后似乎仍然是空的。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

将空数组添加到数组字典中完全没问题。您可以仔细检查您的词典确实包含密钥"1""2""3"的条目:

struct SomeRecord {
    var myRecord : String
}

class MyClass {

    var items: [String:[SomeRecord]] = [:]

    init() {
        self.items["1"] = []
        self.items["2"] = []
        self.items["3"] = []
    }
}

var myInstance = MyClass()

// simple check
print(myInstance.items.count) // 3

// detailed check
for (key, value) in myInstance.items {
    print("key: \(key), value: \(value)")
}
/* key: 2, value: []
   key: 1, value: []
   key: 3, value: []  */

// appending to empty array: OK
myInstance.items["1"]?.append(SomeRecord(myRecord: "record1.1"))
print(myInstance.items.count) // 3

// adding items to dictionary: OK
myInstance.items["4"] = [SomeRecord(myRecord: "record4.1")]
print(myInstance.items.count) // 4

请注意,除非您在名为.self的初始值设定项中使用参数或局部变量,否则items前缀在初始值设定项中是多余的。因此,在上面的这个简单示例中,.self可以省略。