ios - iOS获取国家代码不起作用

标签 ios iphone xcode nslocale

我使用的是从美国购买的iphone5s,并使用印度运营商在印度使用iphone5进行开发。我正在尝试使用NSLocale获取国家代码,但这给了我US而不是IN

我应该怎么做才能使其成为IN

NSLocale *currentLocale = [NSLocale currentLocale];  // get the current locale.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
NSLog(@"country code %@",countryCode);  //US 

最佳答案

NSLocalecurrentLocale将为您提供有关设备设置(语言和地区)上设置的语言环境的信息。

如果要获取承运人的国家/地区代码,则必须使用CoreTelephony框架:

#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>

...

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

需要注意的几件事:

如果存在以下任一情况,则此属性的值(isoCountryCode)为nil:


  • 设备处于飞行模式。
  • 设备中没有SIM卡。
  • 设备不在蜂窝服务范围内。


  • More info on the docs here

    关于ios - iOS获取国家代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31905258/

    相关文章:

    iphone - 如何在单击按钮时弹出默认的 iPhone 键盘

    ios - 如何在nsstring中找到下一行

    ios - 通过目标成员身份而不是目录指定 Cocoapod 源文件

    ios - TTLauncherView 移除删除按钮

    jquery - IOS HTML5 应用程序 - Jquery slider 也允许单击操作

    iPhone-避免在 UIImagePickerController 中进行视频压缩

    iphone - 使用 xcodebuild 命令行将应用程序放到 iPhone 上

    ios - 帮助循环、存储和使用 CGPoints

    ios - 允许在 UIWebView 中访问位置

    ios - SplitViewControllers 可以在 iPhone 上使用吗?