Грубый взлом, который я использовал в прошлом, - это запросить, может ли устройство набрать номер телефона.Я забыл синтаксис, но там должно быть что-то вроде
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:+11111"]]) {
//we have an iphone
} else if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) {
//We have an iPad....
} else {
//We probably have an iPod....
}
Честно говоря, я предпочитаю этот подход, а не абсолютное обнаружение, потому что он сосредоточен на возможностях устройства, а не модели.Лучше условно логизировать, основываясь на том, на что способно устройство, а не на модели, потому что вы никогда не знаете, какие возможности будут представлены в будущем выпуске устройств iOS.Например, скрытие элементов управления видео, если тип устройства == iPad, имело бы практический смысл чуть более года назад, но ограничило бы эту функциональность, когда iPad2 был представлен в течение нескольких месяцев.Если вы полагаете, что только из-за того, что устройство является iPod, вы должны или не должны выполнять функции X, тогда вы будете ограничивать функциональность в следующих выпусках продукта, если эта возможность будет добавлена.