Как уже упоминалось ранее, Великобритания использует сочетание метрических и имперских единиц.
Я бы порекомендовал использовать новую MeassurementFormatter
, представленную в iOS 10, которая обрабатывает большинство из этих расхождений:
import Foundation
let locale = Locale(identifier: "EN_UK")
locale.usesMetricSystem // true!
var formatter = MeasurementFormatter()
formatter.locale = locale
formatter.string(from: Measurement(value: 1000, unit: UnitLength.meters)) // 0.621 mi
Чтобы отобразить расстояние в виде строки в локальной, натуральной единице, используйте:
let distanceInMeters: CLLocationDistance = 1000
let formatter = MeasurementFormatter()
formatter.string(from: Measurement(value: distanceInMeters, unit: UnitLength.meters)) // 0.621 mi
Официальная документация: https://developer.apple.com/documentation/foundation/measurementformatter