Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

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

Отметим, что приложения iPhone импортируют header-файл . Этот файл импортирует, в свою очередь, другие header-файлы UIKit, что аналогично импорту в файле Foundation.h других нужных header-файлов, например, NSString.h и NSObject.h. Чтобы посмотреть содержимое этого файла, нужно пройти достаточно длинный путь. На момент написания этой книги он содержался в папке /Devetoper/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulatог2.1.sdk/System/Library/Franriewor ks/UIKit.framework/Headers/.

Теперь класс iPhoneJAppDelegate содержит две переменные экземпляра. Первая — это объект UlWindow с именем window. Эта переменная экземпляра создается автоматически, когда мы создаем проект, и является ссылкой на главное окно iPhone. Мы добавили еще одну переменную экземпляра с именем display, которая принадлежит классу UlLabel. Это outlet-псрсмснная, которая будет связана с меткой. Когда мы задаем текстовое поле для этой переменной, происходит изменение текста для метки в окне. Другие методы, определенные для класса UlLabel, позволяют задавать и считывать такие атрибуты метки, как цвет, число строк и размер шрифта.

Поделиться:
Популярные книги

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Звездная Кровь. Изгой II

Елисеев Алексей Станиславович
2. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
технофэнтези
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой II

Газлайтер. Том 21

Володин Григорий Григорьевич
21. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 21

Я Гордый Часть 3

Машуков Тимур
3. Стальные яйца
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый Часть 3

Изгой Проклятого Клана. Том 2

Пламенев Владимир
2. Изгой
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Изгой Проклятого Клана. Том 2

Курсант: Назад в СССР 4

Дамиров Рафаэль
4. Курсант
Фантастика:
попаданцы
альтернативная история
7.76
рейтинг книги
Курсант: Назад в СССР 4

Удержать 13-го

Уолш Хлоя
Любовные романы:
остросюжетные любовные романы
эро литература
зарубежные любовные романы
5.00
рейтинг книги
Удержать 13-го

Лейб-хирург

Дроздов Анатолий Федорович
2. Зауряд-врач
Фантастика:
альтернативная история
7.34
рейтинг книги
Лейб-хирург

Двойник короля 13

Скабер Артемий
13. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 13

Свет Черной Звезды

Звездная Елена
6. Катриона
Любовные романы:
любовно-фантастические романы
5.50
рейтинг книги
Свет Черной Звезды

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Барон запрещает правила

Ренгач Евгений
9. Закон сильного
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Барон запрещает правила

Чужак из ниоткуда

Евтушенко Алексей Анатольевич
1. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда