Поскольку categories
представляет собой массив словарей, $0
и $1
являются словарями [Int: Any]
, а не парами значений ключа (key: Int, value: Any)
, хотя каждый из них содержит ровно одну пару значений ключа .
Таким образом, один из способов доступа к одной-единственной паре ключ-значение в каждом словаре - .keys.first!
.
categories.sorted(by: { $0.keys.first! < $1.keys.first! })
Честно говоря, я не думаю, что [[Int: Any]]
является подходящей структурой данных для categories
. Если дубликатов k
нет, просто используйте [Int: Any]
. И вы вставили бы данные следующим образом:
for (k,v) in data {
self.categories[[Int(k) ?? 0] = v
}
Вы можете использовать исходный код, который вы использовали для сортировки:
categories.sorted{ $0.key > $1.key }
И после сортировки вы получите [(key: Int, value: Any)]
.