基本上我需要在应用程序启动时识别用户的国家,并根据他/她的国家在我的应用程序中启用或禁用基于位置的功能。在加载 RootViewController 之前,我需要尽快在应用程序委托中执行此操作。无论如何在iPhone SDK中这样做?
3736 次
1 回答
0
在应用程序运行时,您是否需要设备所在国家/地区的名称?
或者您可以使用设备正在使用的系统区域设置,例如 en_US 或 fr_CA 吗?
如果是后者,您可以:
NSLocale *currentUsersLocale = [NSLocale currentLocale];
NSString *currentLocaleID = [currentUsersLocale localeIdentifier];`
然后currentLocaleID
将"en_US"
或"fr_CA"
或类似。
否则,您需要使用 CoreLocation 和某种形式的反向地理编码器将您的纬度/经度转换为国家/地区名称。
MKReverseGeocoder 可以做到这一点,但服务条款说你需要结合可能不适合你的谷歌地图来做。仅适用于 OS 3.0 及更高版本,搜索MKReverseGeocoder的文档以获取更多信息。
我自己需要这个,最后在我们的服务器上使用设备 IP 地址在 PHP 中进行地理编码。它很简陋,但为我们提供了足够的细节来满足我们的需求。
查看此 Web 服务:http
://ws.geonames.org/findNearby?lat=47.3&lng=
9 它返回一个 XML 文档,其中包含国家和附近的地名,给定 lat/lng 对。
但是,这种方法依赖于具有活动数据连接的设备。
于 2010-05-10T15:57:54.120 回答