【Objective-C】iPhone・iPad・iPodなどの機種判定し処理を振り分ける方法【iOS9】
iPhone・iPad・iPodなどの機種の判定方法は2種類あります
1.iPhone・iPad・iPodなどをざっくり判定
NSString *modelName = [[UIDevice currentDevice] model];
if ([modelName isEqualToString:@"iPhone"]) {
// iPhoneの場合
}
else if ([modelName isEqualToString:@"iPod touch"]) {
// iPod touchの場合
}
else if ([modelName isEqualToString:@"iPad"]) {
// iPadの場合
}
else if ([modelName isEqualToString:@"iPhone Simulator"]) {
//iPhone Simulatorの場合
}
UIDeviceが取れるモデル名を使用した判定方法です。
Swiftと違ってiPodやシュミレーターの判定が可能です。
より細かい判定をしたい場合は以下をお試しください。
2.iPhone・iPadなどを細かく判定
switch ((int)([UIScreen mainScreen].nativeBounds.size.height)) {
case 480:
// iPhone
// iPhone 3G
// iPhone 3GS
break;
case 960:
// iPhone 4
// iPhone 4S
break;
case 1136:
// iPhone 5
// iPhone 5s
// iPhone 5c
// iPhone SE
break;
case 1334:
// iPhone 6
// iPhone 6s
// iPhone 7
// iPhone 8
break;
case 2208:
// iPhone 6 Plus
// iPhone 6s Plus
// iPhone 7 Plus
// iPhone 8 Plus
break;
case 2436:
//iPhone X
break;
default:
break;
}
// iPadの機種判定
switch ((int)([UIScreen mainScreen].nativeBounds.size.height)) {
case 1024:
// iPad Mini
// iPad
// iPad 2
break;
case 2048:
// iPad Mini 2
// iPad Mini 3
// iPad Mini 4
// iPad 3
// iPad 4
// iPad Air
// iPad Air 2
// iPad Pro 9.7
break;
case 2224:
// iPad Pro 10.5
break;
case 2732:
// iPad Pro 12.9
break;
default:
break;
}
画面サイズを利用した判定方法です。
iPod Touchの判定などは無くなる代わりに、iPhone8やiPhone8 Plus、iPhoneXの判定などが可能です。 iPadもMiniやAir、Proの判定が可能です。
ざっくり判定でいくか、細かい判定でいくかは用途に合わせて選択するといいでしょう。