2016-07-28 4 views
1

配列辞書に割り当てられているデータに問題があり、順序にありません。これはテストすることができます私のコードです:1,2,3,4が、私の問題のループ結果が4,2,1,3です:私が欲しいのforループAssigh dataに[文字列:[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 
} 

結果があります。どうしてか分かりません?ありがとう

+0

可能な重複

myArrayだけのような何かを行うために、各要素を取得するには[[["month": "1"]], [["month": "2"]], [["month": "3"]], [["month": "4"]]]

ですスウィフト?](http://stackoverflow.com/questions/38616208/how-are-dictionary-keys-sorted-in-swift) – Daniel

答えて

1

最初にあなたはmyarraydictionaryのタイプではないarrayタイプのデカールを持っています。辞書では、keyの順番を制御することはできません。だからあなたはあなたのために得ている出力for loopそれは正しく働いている間違った出力を持っていません。

+0

あなたの答えをありがとう。 – user3773231

+0

ようこそ、ハッピーコーディング:)あなたの混乱は明らかですか? –

0

コードがに等しい:myArray各辞書があり、正確に一つの要素(持つ配列に含まれている辞書との配列の配列である、コード内のような、こと

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

注少し奇妙な)。

for element in myArray { 
    print(element) 
} 

出力は次のようになります:[どのようAreの辞書キーソートでの

[["month": "1"]] 
[["month": "2"]] 
[["month": "3"]] 
[["month": "4"]] 
関連する問題