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