Assigh data to add [String:[AnyObject]]()不按顺序排列

时间:2016-07-28 05:00:35

标签: arrays swift dictionary

我对分配给数组字典的数据有问题,而且它不在顺序中。这是我可以测试的代码:

let arrayDataTest   = ["1","2","3","4"];
var myarray         = [String:[AnyObject]]()
var arrayAdd        = [AnyObject]()

 for i in 0...arrayDataTest.count - 1{
   var dayArray = [String:AnyObject]()
   dayArray["month"]    = arrayDataTest[i]
   arrayAdd.removeAll()
   arrayAdd.append(dayArray)          
   let string = arrayDataTest[i]
   myarray[string] = arrayAdd
}

我想要的循环结果是: 1,2,3,4 但我的问题循环结果是 4,2,1,3 。我不知道为什么?谢谢

2 个答案:

答案 0 :(得分:1)

首先,从myarray类型而非dictionary类型,您有十分[{1}}。在词典中,您无法控制array的顺序。因此,您为key获得的输出没有任何错误的输出它正常工作。

答案 1 :(得分:0)

您的代码相当于:

let myArray = ["1","2","3","4"].map { [["month": $0]]}

请注意,与您的代码一样,myArray是一个字典数组数组,每个字典都包含在一个只包含一个元素的数组中(这有点奇怪)。

myArray[[["month": "1"]], [["month": "2"]], [["month": "3"]], [["month": "4"]]]

要按顺序获取每个元素,请执行以下操作:

for element in myArray {
    print(element)
}

输出结果为:

[["month": "1"]]
[["month": "2"]]
[["month": "3"]]
[["month": "4"]]