Swift / iOS 12+
フレームワークを介して試すことができますCoreTelephony
。
let noAvailability = CTTelephonyNetworkInfo()
.serviceSubscriberCellularProviders?
.values
.compactMap { $0.mobileCountryCode }
.isEmpty ?? false
(of )の公式ドキュメントには、考慮に入れる価値のあるいくつかのエッジケースに関するもう少し多くの情報が含まれています。mobileCountryCode
CTCarrier
元の答え
次にリンクしてみてくださいCoreTelephony.framework
:
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>
NSString *_code = [[[[CTTelephonyNetworkInfo alloc] init] subscriberCellularProvider] mobileCountryCode];
それについての公式ドキュメントでより多くの情報を見つけることができますが、簡単に:
このプロパティの値nil
は、次のいずれかに該当する場合です。
デバイスにSIMカードがありません。
デバイスがセルラーサービスの範囲外です。
機内モードの場合、値はnil
iPhone4Sより前のハードウェアにある可能性があります。