Как лучше всего создать приложение для iPhone и iPad одновременно?

У меня есть приложение для iPhone, которое я хотел бы перенести на iPad, но я бы хотел, чтобы дублирование было как можно меньше.

Как люди обычно это делают?

Можете ли вы в xcode иметь разные цели для iPhone и iPad и, возможно, провести предварительные проверки процессора? Или лучше всего просто иметь два отдельных проекта?

Обратите внимание, я НЕ говорю о запуске приложения iPhone на iPad, я имею в виду создание собственного приложения 3.2 ...

ИЗМЕНИТЬ

Итак, похоже, создание универсального приложения - это лучший способ:

http://developer.apple.com/iphone/library/documentation/General/Conceptual/iPadProgrammingGuide/StartingYourProject/StartingYourProject.html#//apple_ref/doc/uid/TP40009370-CH9-SW8

Но я до сих пор не понимаю, как выбрать разные файлы NIB в зависимости от вашего текущего развертывания ???

Большое спасибо


person Mark    schedule 03.09.2010    source источник
comment
Вы ищете вариант с 2-кратным увеличением? Не думаю, что иначе можно его перекодировать. Думаю, я искал это некоторое время назад, потому что использовал Cocos2d и обнаружил, что не могу этого сделать, потому что Cocos2d является родным для iPhone.   -  person    schedule 03.09.2010
comment
Вы хотите выполнить перенос на отдельное HD-приложение для iPad или создать универсальное приложение, которое будет работать на обоих?   -  person hotpaw2    schedule 03.09.2010
comment
@ hotpaw2, я действительно не знаю, думаю, мне нужно универсальное приложение, похоже, меньше дублирования   -  person Mark    schedule 03.09.2010
comment
@thyrgle нет, как говорится в вопросе, я НЕ ищу этот вариант   -  person Mark    schedule 03.09.2010


Ответы (2)


Для минимального дублирования вы можете использовать один проект с двумя наборами файлов .nib, но с одним набором файлов исходного кода, которые включают проверки во время выполнения на различия UIUserInterfaceIdiom.

Если вы хотите два (или более) приложения вместо универсального, просто создайте две цели, содержащие только соответствующие файлы .nib, и #ifdef результаты проверки во время выполнения, используя макрос препроцессора, определенный в параметрах сборки каждой цели, чтобы заставить iPhone или Только идиома для iPad.

person hotpaw2    schedule 03.09.2010
comment
да, вот что я ищу, что такое UIUserInterfaceIdiom? Я не могу найти на нем много информации? - person Mark; 03.09.2010
comment
Это свойство устройства, которое сообщает приложению об устройстве, на котором оно работает, что задокументировано в справочнике по классам UIDevice на сайте developer.apple.com. - person hotpaw2; 03.09.2010
comment
Ах, вот этот, блин, так как же мне выбрать, какой NIB загружать в зависимости от устройства? - person Mark; 03.09.2010
comment
Вот процесс, который я использовал: 1. Обновите вашу цель до единого универсального приложения 2. Обратите внимание на новый файл XIB XXX-iPad.xib, который xcode создает для вас 3. Создайте новые файлы XIB, соответствующие вашему приложению iPad (вы может создавать новые файлы XIB, которые указывают на ваш существующий UIViewController, просто добавьте один View XIB, измените его класс на существующий контроллер представления) 4. Внутри этого файла XIB измените обычные загружаемые файлы XIB, чтобы они указывали на новые файлы XIB, которые вы сделано на шаге 3 5. Подключите IBOutlet, как обычно, в новом XIB - person Mark; 08.09.2010

Последний (3.2.3) Xcode автоматически генерирует универсальный проект, который является отличной отправной точкой, чтобы увидеть, как настроить таргетинг на iPad и iPhone в одном проекте Xcode.

File > New Project > Window-based Application > Product : Universal

person ohho    schedule 03.09.2010
comment
Проблема с этим типом проекта заключается в том, что он не создает ViewController, поэтому вы можете делать такие визуальные вещи, как поворот дисплея. Поэтому вам нужно изменить код, чтобы предоставить соответствующие файлы. - person LilMoke; 30.03.2011