変更の内容
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のおちゃめな仕様変更ですね(笑)
コメント