我目前有一个字典,每个键包含1个值。每个键可以有2个值吗?
var data = HomeVC.getData()
MyVariables.users = data.users;
MyVariables.img = data.img;
//MY Current dictionary with 1 value and 1 key
for (index, element) in enumerate(MyVariables.users)
{
MyVariables.dictionary[element as! String] = MyVariables.img[index]
}
我试图将另一个数组中的值添加到此字典中。所以总的来说,在调用它们时,我会在同一个索引位置有3个数组。 2个值和1个键
答案 0 :(得分:6)
您可以使用数组或元组作为字典的值:
var dictionary: Dictionary<String, (ValType1, ValType2)>
dictionary["foo"] = (bar, baz)
println(dictionary["foo"][1])
答案 1 :(得分:3)
而不是尝试保存NSArray
作为键的值。 NSArray
将能够保存超过1个值,并且应该足够了。
每个键2个值的生命周期看起来像这样
myDict[@"key1"] = value1;
// then set next value
myDict[@"key1"] = value2;
现在你的字典丢失了第一个值,你只能访问最后一个。
您的代码看起来像
for (index, element) in enumerate(MyVariables.users)
{
var savedArray: [Your-Object-Type-Here]? = []
var savedArray = MyVariables.dictionary[element as! String]
if savedArray != nil {
savedArray!.append(MyVariables.img[index])
}
else {
savedArray = []
}
MyVariables.dictionary[element as! String] = savedArray
}
答案 2 :(得分:1)
如果您的值是不同的类型,请创建一个自定义类来保存值。使您的字典键指向自定义类的对象。