頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


iOSのバージョンを判定する方法をカテゴリで?

リリース済みアプリをiOS 7対応させる時にiOS 7以前にも対応させようとすると、どうしてもバージョンを確認して場合分けってのが必要になるんだよね。アプリが実行されるデバイスがiOS 7かどうかを調べるにはどうすればいいのか、、、?
ってiOS 6の時にそういうのを作ってたからそれを流用することにしたよ。
+(BOOL)is7orLater
{
    //iOS 7.0もしくはそれ以降か
    NSString *currentSystemVersion = [[UIDevice currentDevice] systemVersion];
    if (([currentSystemVersion compare:@"7.0" options:NSNumericSearch] == NSOrderedSame) ||
        ([currentSystemVersion compare:@"7.0" options:NSNumericSearch] == NSOrderedDescending)) {
        return YES;
    }
    return NO;
}
↑6を7に書き換えただけなんだけど、、、まあこれで動くことは動く。使う時には [MyUtility is7orLater] みたいな感じでアクセス。

コードを眺めててふと、UIDeviceから来てるんだからUIDeviceのカテゴリで実装すりゃいいんじゃね?とか思ってやってみたんだけど、、、
@implementation UIDevice (Is7orLater)
+(BOOL)is7orLater
{
    NSString *currentSystemVersion = [[UIDevice currentDevice] systemVersion];
     if (([currentSystemVersion compare:@"7.0" options:NSNumericSearch] == NSOrderedSame) ||
        ([currentSystemVersion compare:@"7.0" options:NSNumericSearch] == NSOrderedDescending)) {
        return YES;
    }
    return NO;
}
@end
うむ、、、動いてるな。[UIDevice is7orLater] でアクセスできてる。動いてるけど、これでいいのかな?
よく考えたらカテゴリでメソッドを追加するのにクラスメソッドを追加したのって初めてなんだよ。
書いてはみたけどもう少し調べておくか。

<< アプリが落ちるの"落ちる"は英語でなんて言う?  TopPage  文字列にURL|電話番号があると青くしたい >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/801-1763e383




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad