変更の内容
iPhoneで現在使用しているSIM Card情報を取得する値がiOS8から変わりました。
SIM cardが未挿入時が変わりiOS7までは空白(@””)だったのですが(null)へと変わりましたので今までのコードにnilチェックが必要になりました。
SIM Cardが入っている時は変わりません。
SIM Cardの情報を取得するには、CTTelephonyNetworkInfoとCTCarrierを使用します。
対策方法
サンプルコードです
・framework
#import <CoreTelephony/CTTelephonyNetworkInfo.h> #import <CoreTelephony/CTCarrier.h>
・Code
-(NSString *)simCodeInfomation {
CTTelephonyNetworkInfo *netinfo = [CTTelephonyNetworkInfo new];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSString *carrierMNC = carrier.mobileNetworkCode;
NSString *carrierMCC = carrier.mobileCountryCode;
// iOS9からnil出力になった為の対策
if (carrierMCC == nil) {
carrierMCC = @"";
}
if (carrierMNC == nil) {
carrierMNC = @"";
}
return [carrierMCC stringByAppendingString:carrierMNC];
}
Xcodeのおちゃめな仕様変更ですね(笑)

コメント