3 回答

TA貢獻1820條經驗 獲得超2個贊
發表評論中已經說過的話:詞典是“無序集合”。他們的鍵/值對根本沒有任何順序。期。
如果要有序集合,請使用除字典外的其他東西。(做到這一點的一種方法是使用單項詞典的數組。)您還可以編寫代碼,將字典的鍵加載到可變數組中,對數組進行排序,然后使用鍵的排序后的數組來獲取字典中的鍵/值對。所需的順序。
您還可以創建自己的集合類型,該集合類型使用字符串作為索引并使項目保持排序。Swift使其簡單明了,盡管在計算上會很昂貴。

TA貢獻1895條經驗 獲得超7個贊
我確實喜歡這個
let stagesDict = NSDictionary()
if let strVal = sleepItemDict["stages"] as? NSDictionary {
stagesDict = strVal
let sortedKeys = (stagesDict.allKeys as! [String]).sorted(by: <)
var sortedValues : [Int] = []
for key in sortedKeys {
let value = stagesDict[key]!
print("\(key): \(value)")
sortedValues.append(value as! Int)
}
}

TA貢獻1796條經驗 獲得超7個贊
將字典鍵加載到數組中并進行排序不是解決此問題的方法。因為在很多情況下,我們需要在沒有任何邏輯的情況下進行訂購,所以我只想擁有一個像這樣的數組:c,d,a,e
。因此,唯一的方法是將序列數組放入json中,以注意到這是我想要的順序。真煩人 用某種語言,他們沒有這個麻煩。例如,它是PHP。
- 3 回答
- 0 關注
- 613 瀏覽
添加回答
舉報