我想使用 iOS 8 的新 HealthKitNSFormatters
来根据地区显示一个人的体重。所以欧洲的 80 公斤应该像176.36 pounds
美国那样格式化,但欧洲是 80 公斤。为此,我使用该unitStringFromKilograms
方法,根据文档应该返回:
表示单位的本地化字符串。此方法根据格式化程序的语言环境、值的大小和
forPersonMassUse
属性选择正确的单位。
但是,以下代码在具有多个区域设置的多台笔记本电脑和iOS
具有公制区域设置的设备上始终返回“磅”。
这是一个错误还是我忘记了一些如此明显以至于Apple没有在他们的文档中提到它?
import HealthKit
let massFormatter = NSMassFormatter()
massFormatter.forPersonMassUse = true // it doesn't matter if this is false
massFormatter.unitStyle = .Long
var massFormatterUnit = NSMassFormatterUnit.Kilogram
// This unitString SHOULD be according to locale, e.g. kg in Europe, pounds in us.
// instead it always returns 'pounds'
let unitString = massFormatter.unitStringFromKilograms(80, usedUnit: &massFormatterUnit)