【问题标题】:NSLocale in united states?NSLocale 在美国?
【发布时间】:2011-11-27 11:20:07
【问题描述】:

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

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];  

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

检查方法正确吗?

【问题讨论】:

    标签: iphone objective-c ios nslocale


    【解决方案1】:

    NSLocale 仅表示用户的语言和文化偏好,而不是他们的位置。如果你想知道用户的物理位置,你应该使用Core Location APIs。

    【讨论】:

      【解决方案2】:

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

      是的,这将为您提供用户当前的首选语言环境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:(为您链接的文档)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-06
        • 2012-01-05
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        相关资源
        最近更新 更多