У меня есть база данных Firebase с географическими названиями и координатами, я извлек их и поместил каждый из них в свои Array
, а затем в Dictionary
, я хочу, чтобы Dictionary
отсортировано по ближайшему местоположению / по наименьшему Double
.
Я посмотрел тонны ранее заданных вопросов и просто не могу понять, что я делаю неправильно. Когда я печатаю свой словарь, он упорядочивает их в алфавитном порядке (проверяя (фактические) расстояния, я знаю, что они правильные).
Как бы я заказать по низкому Double
?
var placeName = ""
var distanceArray = [Double]()
var nameDistanceDictionary = [String:Double]()
Извлечение данных из Firebase
self.placeName = placeSnap.key
let distanceRound = Double(round(10*distance)/10)
self.distanceArray.append(distanceRound)
self.nameDistanceDictionary = [self.placeName:distanceRound]
print(self.nameDistanceDictionary)
//Prints (example Doubles)
["Ascot": 5.5]
["Birmingham": 1.2]
["Bristol" : 18.6]
["London": 0.3]
["Manchester": 40.2]
["Newcastle": 2.4]
Я пробовал (печатается так же, как указано выше, минус [""]
for (k,v) in (Array(self.nameDistanceDictionary).sorted {$0.1 < $1.1}) {
print("\(k):\(v)")
}