Так что я пытаюсь получить словарь var billMap = [String: [Any]]()
, потому что это входит в мой UITableView. Ключами этого словаря являются разделы, а объекты значения превращаются в ячейки. К сожалению, просто заказав входные данные по session
(то, что становится ключом billMap
) не влияет на порядок словаря billMap
:Вы не можете заказать словарь, заказав ключи перед его созданием?
let billArySorted = billAry.sorted(by: {
($0 as! [String: Any])["session"] as! String > ($1 as! [String:Any])["session"] as! String
})
var session = ""
for item in billArySorted {
let dict = item as! [String:Any]
if session != dict["session"] as! String {
session = dict["session"] as! String
var bills = billArySorted.filter({var billTemp: AnyObject = $0 as! AnyObject; return billTemp["session"] as! String == session})
var billsInSession = [AnyObject]()
for bill in bills {
let billObject: AnyObject = bill as! AnyObject
billsInSession.append(billObject)
}
self.billMap[session] = billsInSession
}
...
Есть идеи? Thx
По определению словарь неупорядочен. – rmaddy
Есть ли альтернативная структура данных, которую вы можете порекомендовать? У C# есть OrderedDictionary, но я не могу найти это здесь. –
Используйте массив словаря или массив некоторых других соответствующих данных. – rmaddy