从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 Language
和Application 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) }