Xcode iOS8でSIMカードの出力値が変わった

スポンサーリンク
おちゃめ

変更の内容

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

コメント

タイトルとURLをコピーしました