Шрифт:
Apple распространяет имитатор (simulator) iPhone в составе SDK iPhone. Этот имитатор повторяет многие элементы среды iPhone, включая домашнюю страницу, веб-браузер Safari, приложение Contacts (Контакты) и т.д. Этот имитатор намного упрощает отладку приложений; вам не нужно каждый раз загружать разрабатываемое приложение на реальное устройство iPhone и затем выполнять отладку на этом устройстве.
Рис. 21.2. Первое приложение iPhone
Чтобы запускать приложения на устройстве iPhone, вам нужно зарегистри-роваться как разработчику программ iPhone и заплатить компании Apple 99 долларов (по состоянию на момент написания этой книги). В ответ вы получите код активации, который позволит вам получить сертификат разработки для iPhone (iPhone Development Certificate), чтобы вы могли тестировать и устанавливать приложения на своем iPhone. К сожалению, вы не можете разрабатывать приложения даже для вашего собственного iPhone без прохождения этого процесса. Приложение, которое мы разрабатываем в этой главе, будет загружаться и тестироваться на имитаторе iPhone, а не на устройстве iPhone. Создание нового проекта приложения iPhone
Вернемся к разработке нашего первого приложения. После установки SDK iPhone запустите приложение Xcode. В меню File (Файл) выберите New Project (Новый проект). Под iPhone OS (если этого пункта нет в левой панели, значит, вы не установили SDK iPhone) щелкните на Application (Приложение). Появится окно, показанное на рис. 21.3.
Здесь мы видим шаблоны, которые можно использовать как отправную точку для различных типов приложений, в соответствии с таблицей 21.1.
Рис. 21.3. Запуск нового проекта для iPhone
Табл. 21.1. Шаблоны приложений iPhone Tип приложения Описание Navigation-Based Для приложения, в котором используется контроллер навигации. Contacts — это пример приложения данного типа. OpenGL ES Для графических приложений OpenGL, например, игр. Tab Bar Для приложений, в которых используется полоса вкладок. Примером может служить приложение iPod. Utility Для приложения, где используется представление flipside (обратная сторона). Примером может служить приложение Stock Quote. View-Based Для приложения, в котором используется одно представление (view). Вы переходите к этому представлению и затем выводите его в окне. Window-Based Для приложения, которое запускается из главного окна iPhone. Его можно использовать как отправную точку для любого приложения
Вернувшись к окну New Project, выберите в верхней правой панели Window- Based Application и затем щелкните на кнопке Choose (Выбрать). При последующем запросе ввода имени проекта (в поле Save As —Сохранить как) введите текст iPhone_l и щелкните на кнопке Save (Сохранить). Это имя станет именем вашего приложения по умолчанию. Как вы уже знаете из предыдущих проектов, созданных с помощью Xcode, будет создан новый проект, содержащий шаблоны для необходимых файлов (рис. 21.4).
Рис. 21.4. Создание нового проекта iPhone
В зависимости от ваших настроек и предыдущего использования Xcode ваше окно может несколько отличаться от показанного на рисунке. Вы можете продолжить работу с текущего вида или постараться изменить его так, чтобы он походил на этот рисунок.
В верхнем левом углу окна Xcode мы видим раскрывающийся список, помеченный текущим выбором для SDK и активной конфигурации (Configuration). Поскольку мы не разрабатываем приложение для непосредственного выполнения на iPhone, нужно настроить SDK для работы с имитатором iPhone (Simulator) и для конфигурации задать вариант Debug (Отладка). Если этот рас-крывающийся список не помечен как Simulator | Debug, выберите соответствующие опции, как показано на рис. 21.5.
Рис. 21.5. Проект iPhoneJ с заданными опциями секций SDK и Configuration Ввод кода
Теперь мы можем внести изменения в некоторые файлы проекта. Обратите внимание, что для вас созданы классы «jWtfnpoeK/naAppDelegate.h и илщл/гаек/иаАрр Delegate.m (в данном примере имяпроекта — это iPhonc_l). Вся работа но управлению кнопками и метками в типе приложения Window- based, которое мы создаем, делегируется классу, который называется ш1я«росл:/лаАррDelegate (в данном случае — iPhone_ 1 AppDelegate). В этом классе мы определим методы, чтобы реагировать на действия, возникающие в окне iPhone, такие как нажатие кнопки или перемещение ползунка. Как вы увидите, конкретная связь между этими управляющими элементами и соответствую-щими методами задается в приложении Interface Builder.
Этот класс будет также содержать переменные конфшурации, значения которых соответствуют некоторому управляющему элементу в окне iPhone, например, имя на метке или текст, отображаемый в поле изменяемого текста. Эти переменные называют outlet-переменными, и, аналогично процедурам действий, мы связываем в Interface Builder переменные экземпляра с конкретным управляющим элементом окна iPhone.
Для нашего первого приложения нужен метод, реагирующий на действие, которое состоит из нажатия кнопки с меткой I. Нам нужна также outlet-пере-менная, содержащая (среди прочей информации) текст, который должен отображаться на метке, создаваемой вверху окна iPhone.
Внесем изменения в файл iPhone_1AppDelegate.h, чтобы добавить переменную типа UlLabel с именем display и объявить метод для действия с именем clickl:, чтобы реагировать на нажатие кнопки. Наш файл секции interface показан в программе 21.1. (Здесь нет строк комментария, которые автоматически вставляются в начале файла.)
Программа 21.1. iPhoneJAppDelegate.h #import <UIKit/UIKit.h> @interface iPhoneJAppDelegate : NSObject <UIApplicationDelegate> { UlWindow *window; UlLabel *display; } @property (nonalomic, retain) IBOutlet UlWindow *window; @property (nonatomic, retain) IBOutlet UlLabel *display; -(IBAction) clickl: (id) sender; @end