我目前正在开发基于地图的iPhone应用程序,并希望向用户显示一些信息。对于我的应用程序,有一个用户可以选择英里或公里的某种设置是有意义的。是否有内置机制(可能类似于字符串本地化)来进行这种值切换,以便每次我想向用户显示内容时都可以避免使用if-block?
答案 0 :(得分:12)
看看NSLocale。您应该能够使用[NSLocale currentLocale]获取当前区域设置。然后调用[theLocale objectForKey:NSLocaleMeasurementSystem]并查看应该告诉您用户区域设置是否使用公制系统的结果。 NSLocale的文档有一个常量部分,列出了可以传递给语言环境的所有值。
使用此功能,您可以创建自己的功能,可以在程序中使用以特定于语言环境的方式返回距离。
答案 1 :(得分:-1)
根据我的快速测试NSLocaleUsesMetricSystem
可能不适用于查找用户'地区使用公里或英里。
在英国,距离以英里为单位,速度以英里每小时为单位,但NSLocaleUsesMetricSystem
返回1.
在美国,NSLocaleUsesMetricSystem
返回0是正确的(距离是以英里为单位,速度是以每小时英里数计)。
在印度,NSLocaleUsesMetricSystem
返回1再次正确(距离以千米为单位,以英里为单位)。