我想填充一个包含3个空数组的字典,我正在使用这段代码:
定义:
var items: [String:[SomeRecord]] = [:]
代码:
self.items["1"] = []
self.items["2"] = []
self.items["3"] = []
"项目"在3个任务之后似乎仍然是空的。有什么想法吗?
答案 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
可以省略。