在 iOS 10 中使用适当大小的本地化单位

Use localized unit of appropriate magnitude in iOS 10

我正在使用 iOS 10 中的新 Measurement API 来获取长度测量的本地化字符串:

let length = Measurement(value: 200, unit: UnitLength.centimeters)
let str = MeasurementFormatter().string(from: length)

但是,对于我的(英国)语言环境,我会返回 "0.001 mi",这不是一个非常有用的字符串来显示。相反,我更愿意获得一个字符串,该字符串使用适当的单位(例如 "6.56 feet""2.19 yards")来表示测量的大小。 API 是否可行,还是我最好使用使用 SI 前缀的自定义解决方案?

解决方法很简单:

let length = Measurement(value: 200, unit: UnitLength.centimeters)
let f = MeasurementFormatter()
f.unitOptions = MeasurementFormatter.UnitOptions.naturalScale
f.numberFormatter.maximumFractionDigits = 2 
let str = MeasurementFormatter().string(from: length)