2016-07-28 45 views
1

我有數據分配給數組字典的問題,它不是按順序。這是我的代碼,你可以測試:Assigh數據添加到[字符串:[AnyObject]]()不按順序

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 
} 

結果for循環,我想的是:1,2,3,4但我的問題循環的結果是4,2,1,3。我不知道爲什麼?感謝

+0

的[如何解釋關鍵字排序在可能的複製Swift?](http://stackoverflow.com/questions/38616208/how-are-dictionary-keys-sorted-in-swift) – Daniel

回答

1

首先你有decalre myarray as of dictionary type not array type。在字典中,您無法控制key的順序。所以你得到的輸出是for loop它沒有任何錯誤的輸出,它工作正常。

+0

感謝您的回答。 – user3773231

+0

歡迎隊友,快樂編碼:)你的困惑是否清楚? –

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"]] 
相關問題