从iPhone设备中查找当前国家/地区

我必须在iPhone设置中获取当前的国家/地区。 任何人都可以告诉我如何获得iPhone应用程序中的当前国家。

我必须使用当前的国家来parsing我需要通过当前国家的RSS提要。

请帮我find国家。

提前致谢。

要find用户所选语言的国家/地区:

NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale. NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode]; // get country code, eg ES (Spain), FR (France), etc. 

在Swift中:

 let currentLocale = NSLocale.currentLocale() let countryCode = currentLocale.objectForKey(NSLocaleCountryCode) as? String 

如果您想查找当前时区的国家代码,请参阅@ chings228的答案 。

如果您想查找设备物理位置的国家/地区代码,则需要CoreLocation进行反向地理编码。 看到这个问题的细节: 我怎样才能从iOS用户获得当前位置

 NSLocale *locale = [NSLocale currentLocale]; NSString *countryCode = [locale objectForKey: NSLocaleCountryCode]; NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode]; 
 NSLocale *countryLocale = [NSLocale currentLocale]; NSString *countryCode = [countryLocale objectForKey:NSLocaleCountryCode]; NSString *country = [countryLocale displayNameForKey:NSLocaleCountryCode value:countryCode]; NSLog(@"Country Code:%@ Name:%@", countryCode, country); //Country Code:IN Name:India 

来源链接 。

如果您正在testing并希望在系统中使用不同的语言,则更改计划的“ Application Language和“ Application Region选项是最容易的,而不必更改设备或模拟器上的语言和区域。

转至Product – > Scheme – > Edit Scheme... – > Run – > Options然后select要testing的Application LanguageApplication Region

在方案运行选项中编辑应用程序语言和应用程序区

从iOS文档: testing您的国际化应用程序

 NSTimeZone *gmt = [NSTimeZone localTimeZone]; NSLog(@"timezone gmt %@",gmt.abbreviation); 

Swift 3.0解决scheme

 if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String { print(countryCode) } 

对于带有SIM卡的设备,您可以使用这个:

  CTTelephonyNetworkInfo * network_Info = [CTTelephonyNetworkInfo new]; CTCarrier * carrier = network_Info.subscriberCellularProvider; NSString * countryCode = [carrier.isoCountryCode uppercaseString]; 

Swift 3.0最新的工作代码是

 if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String { print(countryCode) }