5

ここで説明されているように->プログラムでiPhoneからキャリア名を取得する

キャリアの名前を取得しようとしています。このコードを使用しています

CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSLog(@"Carrier Name: %@", [carrier carrierName]);
[netinfo release];

しかし、次の警告が表示され[carrier carrierName]ます: インスタンスメソッド '-carrierName' が見つかりません

プロジェクトにフレームワーク coretelephony を追加しましたが、アプリを実行するとクラッシュします。

ありがとうございます!

4

3 に答える 3

13

CTCarrier を明示的にインポートしましたか?

#import <CoreTelephony/CTCarrier.h>
于 2011-11-15T16:20:19.563 に答える
1

私も同じ問題を抱えており、デバイスごとにログを記録しようとしています:

NSLog(@"carrierName = %@",carrier.carrierName);
NSLog(@"mobileCountryCode = %@",carrier.mobileCountryCode);
NSLog(@"mobileNetworkCode = %@",carrier.mobileNetworkCode);
NSLog(@"isoCountryCode = %@",carrier.isoCountryCode);
NSLog(@"allowVOIP = %d",carrier.allowsVOIP);

結果:

2012-05-29 11:48:31.466 キャリア テスト [357:707] mobileCountryCode = 466

2012-05-29 11:48:31.469 キャリア テスト [357:707] mobileNetworkCode = 97

2012-05-29 11:48:31.470 キャリア テスト [357:707] isoCountryCode = tw

2012-05-29 11:48:31.472 キャリア テスト [357:707] allowVOIP = 1

オブジェクトの CarrierName は実行スタックでは "....." ですが、実際には "台湾大哥大" のはずです

文字列のエンコーディングの問題のようですが、取得できませんか? 何も思いつきません...

他のキャリアの SIM カードを試すことができます。

于 2012-05-29T04:16:40.457 に答える
0

試す

NSLog(@"Carrier Name: %@", carrier.carrierName);

代わりは。

于 2011-11-15T15:33:06.057 に答える