iPad上的NSLocaleUsesMetricSystem始终为YES

时间:2010-10-20 13:55:02

标签: ios ipad nslocale metric-system

我正在尝试确定用户的Region / Locale设置是否验证了Metric值的使用(在这种情况下,如果应该追加 kg lb )。

我在iPad上和模拟器上运行3.2(Xcode 3.2.4)。 我尝试了一些不同的区域设置,但我无法让NONSLocaleUsesMetricSystem

NSLocale *locale = [NSLocale systemLocale]; 
BOOL usesMetric = [[locale objectForKey:NSLocaleUsesMetricSystem] boolValue];

NSLog(@"The system is Metric: %@\n", (usesMetric ? @"YES" : @"NO"));

对于在模拟器和实际设备上设置为英语且区域设置为美国的语言,甚至会发生这种情况。

我也试过NSLocaleMeasurementSystem,它也总是返回“公制”,而不是“美国”。

我将如何决定是否应该使用Metric?

感谢您提供的任何帮助:)

......我可以这么幸运,在我睡觉的时候整个世界变成了公制:)

2 个答案:

答案 0 :(得分:11)

尝试使用currentLocale代替systemLocale

答案 1 :(得分:2)

出现同样的问题,直到我意识到,英国正式使用公制系统。我一直以为他们仍然使用帝国,所以我和英国一起测试。

当我开始测试美国语言环境时,NSLocaleUsesMetricSystem开始按预期返回“NO”。

希望这有帮助。