3 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
發(fā)表評(píng)論中已經(jīng)說(shuō)過(guò)的話:詞典是“無(wú)序集合”。他們的鍵/值對(duì)根本沒(méi)有任何順序。期。
如果要有序集合,請(qǐng)使用除字典外的其他東西。(做到這一點(diǎn)的一種方法是使用單項(xiàng)詞典的數(shù)組。)您還可以編寫代碼,將字典的鍵加載到可變數(shù)組中,對(duì)數(shù)組進(jìn)行排序,然后使用鍵的排序后的數(shù)組來(lái)獲取字典中的鍵/值對(duì)。所需的順序。
您還可以創(chuàng)建自己的集合類型,該集合類型使用字符串作為索引并使項(xiàng)目保持排序。Swift使其簡(jiǎn)單明了,盡管在計(jì)算上會(huì)很昂貴。

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
我確實(shí)喜歡這個(gè)
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貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
將字典鍵加載到數(shù)組中并進(jìn)行排序不是解決此問(wèn)題的方法。因?yàn)樵诤芏嗲闆r下,我們需要在沒(méi)有任何邏輯的情況下進(jìn)行訂購(gòu),所以我只想擁有一個(gè)像這樣的數(shù)組:c,d,a,e
。因此,唯一的方法是將序列數(shù)組放入json中,以注意到這是我想要的順序。真煩人 用某種語(yǔ)言,他們沒(méi)有這個(gè)麻煩。例如,它是PHP。
- 3 回答
- 0 關(guān)注
- 624 瀏覽
添加回答
舉報(bào)