【iOS】iPhone,iPod touch,iPadのデバイス機種判定【Objective-C】

2020年8月27日

アプリを起動しているデバイスによって振り分けをしたい場合の判定方法です。

デバイスの判定はUIDeviceクラスのmodelで取得することが可能になっています。

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の場合
}
取得できるモデル
iPhone
iPod touch
iPad
iPone Simulator

以上になります。
とても簡単ですね!

注意としては、iPhoneのみで使用可能なアプリを開発している場合、画面サイズの振り分けによりレイアウトの数値を変える場合があると思います、しかし、iPhoneのみのアプリでもiPadでインストールが可能です。
iPadでの振り分けも考慮が必要になった場合などに使っていきましょう!

別の方法として下記の方法もあるみたいですが、iPadのシュミレーターでは動作しなかったので上記の方法のか確実かもしれません。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
  // iPhoneの処理
}
else{
  // iPadの処理
}
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
  // iPadの処理
}
else{
  // iPhoneの処理
}