获取用户所在国家

3

我想了解如何使用Xcode(iPhone Dev SDK)查找当前用户的国家。


2
请提供获取iPhone当前位置的最简单方法。 - Max
1个回答

13

如果你想获取用户的国家,有两种方法。最简单的方法是从他们的本地化设置中解密。

NSLocale *locale = [NSLocale currentLocale];
NSString *country = [locale displayNameForKey:NSLocaleIdentifier value:[locale localeIdentifier]];

这可能是不可靠的(例如,用户在国外时)。如果您依赖于这些信息,您应该使用CoreLocation来找到用户当前位置,然后使用反向地理标记来从坐标中获取国家。请查看 CoreLocation Framework reference。它应该会对您有所帮助。

当我运行这段代码时,我得到的结果是"English (United Kingdom)"。对于我的应用程序,我正在使用一个API,并且需要判断用户是否基于美国(无论他们当前是否在国外)。对于美国用户返回的字符串是"English (United States)"吗?我找不到相关信息,所以必须百分之百确定! - Patrick
应该是这样的。我相信这只是获取他们的语言设置,所以如果您浏览一下iPhone设置中的语言选项,您将能够看到各种选项。唯一的问题可能是居住在美国但讲外语的人。最好使用核心定位技术。 - user470763
好的,谢谢!我将来会考虑使用核心定位。我现在使用的API都是英文,所以现在应该没问题! - Patrick
NSLocale可以获取设备所在的国家,但即使我们移居到其他国家,它也不会更新,仍然只能读取手机设置的区域。 - Vineesh TP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接