我必须在iPhone设置中获取当前国家/地区。谁能告诉我如何在iPhone应用程序中获取当前国家/地区。
我必须使用当前国家/地区来解析我需要传递当前国家/地区的RSS Feed。
请帮我找到这个国家。
提前致谢。
答案 0 :(得分:133)
要查找用户所选语言的国家/地区:
NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
// get country code, e.g. ES (Spain), FR (France), etc.
在斯威夫特:
let currentLocale = NSLocale.currentLocale()
let countryCode = currentLocale.objectForKey(NSLocaleCountryCode) as? String
如果您想查找当前时区的国家/地区代码,请参阅@chings228's answer。
如果要查找设备物理位置的国家/地区代码,则需要使用反向地理编码的CoreLocation。有关详细信息,请参阅此问题:How can I get current location from user in iOS
答案 1 :(得分:17)
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];
答案 2 :(得分:9)
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
答案 3 :(得分:9)
对于使用SIM卡的设备,您可以使用:
CTTelephonyNetworkInfo * network_Info = [CTTelephonyNetworkInfo new];
CTCarrier * carrier = network_Info.subscriberCellularProvider;
NSString * countryCode = [carrier.isoCountryCode uppercaseString];
答案 4 :(得分:9)
对于Swift 4.0,
您可以简单地使用
print(countryCode)
if(strpos($_SERVER['REQUEST_URI'], 'shop.php') !== false){
echo 'url contains shop';
}
答案 5 :(得分:5)
NSTimeZone *gmt = [NSTimeZone localTimeZone];
NSLog(@"timezone gmt %@",gmt.abbreviation);
答案 6 :(得分:5)
如果您正在测试并希望使用与系统不同的语言,则最简单的方法是更改方案的Application Region
和Product
选项,而不是更改设备或模拟器上的语言和区域。
转到Scheme
- > Edit Scheme...
- > Run
- > Options
- > Application Language
并选择Application Region
和Data dataHolder= null;
lThread.run();
synchronized (lThread) {
while(lThread.locked){
try {
lThread.wait(3000);
}
catch(InterruptedException e){
}
}
dataHolder = lThread.dataHolder;
}
你要测试。
答案 7 :(得分:3)
Swift 3.0 解决方案
if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String {
print(countryCode)
}
答案 8 :(得分:3)
Swift 3.0最新的工作代码是
if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String {
print(countryCode)
}