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