iOS字典每个键有两个值?

时间:2015-09-04 13:02:09

标签: ios swift

我目前有一个字典,每个键包含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个键

3 个答案:

答案 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)

如果您的值是不同的类型,请创建一个自定义类来保存值。使您的字典键指向自定义类的对象。