Ну, вы можете просто обернуть каждый вызов в оператор if, например:
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
//do scale stuff here
}
Но лучший способ (который может потребовать реструктуризации всего приложения) - это иметь отдельные контроллеры представления для iPad и iPhone.
Чтобы получить масштаб устройства для кроссплатформенного вида или чего-то еще, вы можете сделать так:
CGFloat scale;
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
scale=[[UIScreen mainScreen] scale];
} else {
scale=1; //only called on iPad.
}
Чтобы не вводить это каждый раз, вы можете объявить категорию на UIScreen, которая использует этот код внутри метода -realScale или чего-то еще.
Все эти методы требуют установки базового SDK на 4.0 (чтобы вы могли получить доступ к API 4.0) и минимальной цели развертывания iPhone до 3.2 (чтобы он работал на iPad)