24/7 twenty-four seven

iOS/OS X application programing topics.

iPhone 3Gと3GSやiPod touchの世代を判別する方法 (2)

iPhone 3Gと3GSやiPod touchの世代を判別する方法 - 24/7 twenty-four seven

以前にiPhoneやiPod touchのモデルを区別する方法として、sysctlbyname()関数を使う方法を紹介しましたが、モデル番号だけならuname()を使う方が簡単でした。

#import <sys/utsname.h>

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    struct utsname u;
    uname(&u);
    NSLog(@"%s", u.machine);
}


実行結果は次のようになります。

2009-10-06 19:04:24.402 DetectDevice[17101:207] iPhone2,1


それぞれのモデル番号の対応は下記になります。

"iPhone1,1" = iPhone 1G
"iPhone1,2" = iPhone 3G
"iPhone2,1" = iPhone 3GS
"iPod1,1"   = iPod touch 1G
"iPod2,1"   = iPod touch 2G