Я работаю над новым приложением, которое хочу сделать универсальным для iPhone и iPad. Я начал с мастера «Создание оконного приложения», и он создал отдельных делегатов приложения в группах «iPhone» и «iPad». Поскольку я уже был достаточно знаком с разработкой для iPhone, я выполнил эту часть своего проекта, и теперь я готов заняться некоторыми вещами для iPad.
Итак ... Я начал с добавления UISplitViewController к моему делегату iPad, переключил Active SDK на 3.2, и он заработал! Но когда я снова переключаюсь на 3.1.3 и пытаюсь запустить его в симуляторе, Build and Go терпит неудачу. Для начала вижу:
... путь ... / iPad / AppDelegate_Pad.h: 13: ошибка: ожидаемый список квалификаторов спецификаторов перед 'UISplitViewController'
У меня базовый SDK установлен на 3.2, а моя цель развертывания - на 3.1.3. Я думал, этого было достаточно. Но я также нашел в документации этот метод условной компиляции:
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
MyIPadViewController* vc;
// Create the iPad view controller
#else
MyIPhoneViewController* vc;
// Create the iPhone view controller
#endif
Так что мне нужно делать это везде? Кажется, нужно добавить очень много кода (от которого я все равно избавлюсь в ближайшее время для 4.0), поэтому я чувствую, что, должно быть, делаю что-то не так. И я даже не знаю, как это работает для таких вещей, как объявления @property или @synthesize.
tl; dr версия вопроса - я где-то пропустил настройку?