使用CoreTelephony获取运营商名称只会返回"运营商"

Dix*_*ine 10 iphone core-telephony carrier

我尝试使用此代码获取运营商名称(使用CoreTelephony):

CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSLog(@"Carrier Name: %@", [carrier carrierName]);
Run Code Online (Sandbox Code Playgroud)

它返回"Carrier".如果我去iPhone设置我的运营商名称是正确的.我手机上的iOS是v4.2.1.

我究竟做错了什么?

JOM*_*JOM 2

你真的得到字符串“Carrier”还是字符串是空的?文档说:

如果满足以下任一条件,则此属性的值为 nil:

设备处于飞行模式。设备中没有 SIM 卡。该设备位于蜂窝服务范围之外。

打赌它在模拟器中也是空的。

无论如何,您应该检查mobileNetworkCode,因为名称很少是正确的(至少在欧洲,运营商经常更改名称)。