NSMassFormatter不返回本地化值

时间:2015-01-12 09:14:50

标签: ios localization ios8 health-kit

我想使用iOS 8的新HealthKit NSFormatters来根据区域设置显示一个人的体重。因此,欧洲的80公斤应该在美国格式为176.36 pounds,而在欧洲则为80公斤。 为此,我使用unitStringFromKilograms方法,根据文档应返回:

  

表示单位的本地化字符串。此方法根据格式化程序的语言环境,值的大小和forPersonMassUse属性选择正确的单位。

但是,在具有多个区域设置的几台笔记本电脑和具有公制区域设置的iOS设备上,以下代码始终会返回'磅'。

这是一个错误还是我忘记了苹果公司在他们的文档中没有提到的那么明显的东西?

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)

0 个答案:

没有答案