首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >美国的NSLocale?

美国的NSLocale?
EN

Stack Overflow用户
提问于 2011-11-27 19:20:07
回答 2查看 1.3K关注 0票数 2

我正在使用NSLocale来检测我的用户现在所在的国家。当我想要检查用户是否在美国境内时

代码语言:javascript
复制
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];  

if ([countryCode isEqualToString:@"US"]) {
///////
}

这是检查的正确方式吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-27 19:33:43

NSLocale只指示用户的语言和文化偏好,而不是他们的位置。如果您想知道用户的物理位置,则应该使用Core Location API。

票数 5
EN

Stack Overflow用户

发布于 2011-11-27 19:38:08

这是一个“是”和“不是”的答案。

是的,这将为您提供用户当前首选的语言环境。And judging from other questions like yours,其他人已经决定这个答案是“足够好”。

然而,我可以带着我的iPhone在中国,如果我还在用英语工作,我相信countryCode仍然会返回"US“。

如果您真的想知道用户当前所在的国家,可以使用CoreLocation并进行一些反向地理编码。有了CoreLocation坐标,您就可以像http://ws.geonames.org/findNearby?lat=47.3&lng=9一样进行查找。还有MKReverseGeocoder (从iOS 5.0开始就不推荐使用它了)和GLGeocoder,它调用了– reverseGeocodeLocation:completionHandler: (为您链接了文档)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8285170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档