Добавьте MutableOrderedDictionary
класс в ваш код:
class MutableOrderedDictionary: NSDictionary {
let _values: NSMutableArray = []
let _keys: NSMutableOrderedSet = []
override var count: Int {
return _keys.count
}
override func keyEnumerator() -> NSEnumerator {
return _keys.objectEnumerator()
}
override func object(forKey aKey: Any) -> Any? {
let index = _keys.index(of: aKey)
if index != NSNotFound {
return _values[index]
}
return nil
}
func setObject(_ anObject: Any, forKey aKey: String) {
let index = _keys.index(of: aKey)
if index != NSNotFound {
_values[index] = anObject
} else {
_keys.add(aKey)
_values.add(anObject)
}
}
}
Добавьте эту функцию в ваш код:
//MARK: - Sort Dictionary Key by the Ascending order
static func sortDictionaryKey(dictData : [String : Any]) -> MutableOrderedDictionary {
// initializing empty ordered dictionary
let orderedDic = MutableOrderedDictionary()
// copying normalDic in orderedDic after a sort
dictData.sorted { $0.0.compare($1.0) == .orderedAscending }
.forEach { orderedDic.setObject($0.value, forKey: $0.key) }
// from now, looping on orderedDic will be done in the alphabetical order of the keys
orderedDic.forEach { print($0) }
return orderedDic
}
Вам нужно передать словарь в sortDictionaryKey
функцию:
let sortedDict = self.sortDictionaryKey(dictData: YourDictionary)
Этот код отсортирует ваш словарь в алфавитном порядке.
Надеюсь, это работает для вас.