Это правильный способ обнаружения iPad?

Можно ли использовать следующий код, чтобы определить, работает ли мое приложение на iPad? Мое приложение должно работать на iOS 3.0 или выше.

if([[[UIDevice currentDevice] model] isEqualToString:@"iPad"]){
  //Do iPad stuff.
}

Ответ 1

Используйте макрос UI_USER_INTERFACE_IDIOM() на iOS >= 3.2:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
   //device is an iPad.
}

В более ранних версиях iOS вы можете вернуться к своему коду, а именно:

NSRange ipadRange = [[[UIDevice currentDevice] model] rangeOfString:@"iPad"];
if(ipadRange.location != NSNotFound) {
  //Do iPad stuff.
}

Этот подход является совместимым с переносом в том смысле, что если в следующем году Apple выпустит другой iPad, название модели может измениться, но слово "iPad" обязательно будет где-то внутри строки.

Ответ 2

Неа. Сделайте это вместо:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // ...
}