Главная » iPhone, Objective-C, Программирование для iOS и MacOS » Ваша первая программа Objective-C

0

Итак, теперь вы знаете, как устроена эта книга. Давайте посмотрим, как же происходит программирование для Маc, iPhone и iPad. Для этого вам предстоит:

•  установить средства разработчика фирмы Apple;

•  создать простой проект с использованием этих средств;

•  познакомиться с тем, как работает инструментарий разработчика. чтобы обеспечить работоспособность нашего проекта.

К концу этой главы вы успешно напишете свою первую программу для Маc.

Установка средств разработчика Apple

Для написания приложений для Mac OS (Macintosh) или iOS (iPhone и iPad) вы будете использовать средства разработчика Apple. Программы можно загрузить по адресу http://developer.apple.com/ или приобрести их в Mac App Store.

После установки средств разработчика найдите папку /Developer в корневом катологе своего жесткого диска. В этой папке содержится все необходимое для разработки приложений для настольных систем Mac OS X и мобильных устроств iOS.

Почти вся наша работа в этой книге будет выполнятся в одном приложении – Xcode из папки /Developer/Applications. (Я бы рекомендовал перетащить значок Xcode на док-панель; вы будете очень часто его использовать)

Знакомство с Xcode

Xcode – интегрированная среда разработки (IDE, Intеgrаtеd Development Еnvironment) фирмы Аррlе. Это означает, что в Xcode присутствует все необходимое для написания, построения и запуска новых приложений в Xcode.

Одно замечание по поводу терминологии: любые исполняемые файлы на компьютере называются программами. Некоторые программы имеют графический интерфейс; их мы будем называть приложениями.

Другие программы не имеют графического интерфейса и целыми днями работают в фоновом режиме: они называются демонами. Термин звучит устрашающе, но в самих программах ничего страшного нет. Вероятно, прямо сейчас на вашем Мас

выполняется около 60 демонов. Они ждут своего часа, чтобы помочь вам в выполнении какой-либо операции, Например, один из демонов, работающих в вашей системе, называется pboard. Когда вы выполняете операцию копирования/вставки, демон pboard хранит копируемые данные.

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

Итак, сейчас мы напишем в Xcode простую программу командной строки, чтобы вы в общих чертах поняли, как это делается.

В ходе написания программы вам приходится создавать и редактировать некоторые файлы. Xcode хранит информацию об этих файлах в проекте. Запустите Xcode, выберите в меню File команду New, а затем New Project

Чтобы вам было проще приступить к работе, Xcode предлагает несколько возможных шаблонов проектов. Шаблон выбирается в зависимости от того, какую программу вы собираетесь писать. В левом столбце выберите в разделе Мас OS Х строку Application. Затем выберите значок Command Line Тооl среди вариантов в области справа.

Нажмите кнопку Next.

Присвойте проекту имя AGoodStart. Идентификатор компании в упражнениях нашей книги роли не играет, но вам придется ввести его для продолжения работы. Введите строку BigNerdRanch или другое обозначение по вашему усмотрению. В раскрывающемся списке Туре выберите строку С, потому что программа будет написана на языке С. Наконец, проследите за тем, чтобы флажок Use Automatic Referenсe Соuпting был установлен.

Рис 2.1 Выбор шаблона

Рис 2.2 Настройка конфигурации

Нажмите кнопку Next.

Теперь выберите папку, в которой будет создан каталог проекта. Репозиторий для контроля версий вам не понадобится, этот флажок можно снять. Остается щелкнуть по кнопке Create.

Вам предстоит создавать проекты этого типа в нескольких ближайших главах. В будущем я просто напишу: «Создайте новый проект программы командной строки С с именем таким-то» – выполните ту же последовательность действий.

(Почему С? Вспомните, что Objective-C построен на базе языка программирования С. Вы должны усвоить основные понятия С, прежде чем мы сможем перейти к специфике Objective-C.)

С чего начать?

После   создания   проекта   на   экране   появляется   окно   с   информацией

AGoodStart.

В этом окне приводятся разные подробности: в каких версиях Мас OS Х будет запускаться ваше приложение, какие конфигурации должны использоваться при компиляции написанного кода, какие локализации должны применяться в проекте. Но пока не будем обращать на них внимания и найдем простую отправную точку для начала работы.

Найдите в верхней части левой панели файл с именем main.c и щелкните на нем. (Если вы не видите строку main.c, щелкните на треугольнике рядом с папкой AGoodStart, чтобы открыть содержимое папки.)

Рис. 2.3. Первый взгляд на проект AGoodStart

Рис. 2.4. Файл main.c в группе AGoodStart

Обратите внимание: исходное представление с информацией о приложении заменяется содержимым файла main.c. Файл main.c содержит функцию с именем main.

Функция представляет собой список инструкций, которые должен выполнить компьютер. У каждой функции есть имя. В программах на языке С или Objective-C функция main вызывается при запуске программы.

#include <stdio.h>

int main (int argc, const char * argv[]) {

// insert code here… printf("Hello, World!\n"); return 0;

}

В этой функции присутствует два вида информации: программный код и комментарии

•      Программный код – набор инструкций, которые приказывают компьютеру выполнить некоторые действия.

•      Комментарии игнорируется компьютером .Мы, программисты, используем их для документированная написанного нами кода. Чем труднее задача, которую вы пытаетесь решить, тем больше пользы от комментариев, описывающих ее решение. Информация становится особенно важной, когда вы вернетесь своей работе через несколько месяцев, посмотрите на код, который вы забыли прокомментировать, и подумаете: « Наверняка очень умная штука, вот только я начисто забыл, как она работает».

В С н Objective-C комментарии можно отличить от кода по двум признакам:

•      Если строка начинается с символов //, то все, начиная от этих символов и до канна строки, считается комментарием. Пример – комментарий «insert code here» от фирмы Аррlе.

•      Если вы захотите добавить более обширное описание, используется теобо значения /* и */ для пометки начала и конца комментариев, занимающих несколько строк

Эти правила пометки комментариев являются частью синтаксиса С. Синтаксисом называется набор правил, которые определяют, как должен быть написан код на данном языке программирования. Правила синтаксиса в высшей степени точные и конкретные; если вы нарушите их, то ваша программа работать не будет.

Синтаксис комментариев относительно прост, но синтаксис программного кода сильно зависит от того, что и как делает ваш код. Впрочем,одна особенность остается неизменной: каждая команда завершается символом «точка с запятой» (;). (Вскоре мы рассмотрим примеры команд в программном коде). Если забыть об этом символе, в программе появится с синтаксическая ошибка, и она работать не будет.

К счастью, Xcode старается предупредить вас о подобных ошибках. Собственно, одна из первых проблем, с которыми вы столкнетесь как программист, – умение понять, о чем сообщает Xcode при обнаружении ошибок, и исправить эти ошибки. На страницах этой книги мы увидим примеры сообщений Xcode о стандартных ошибках.

Давайте внесем в main.c некоторые изменения. Для начала нам понадобится свободное место. Найдите фигурные скобки({ и }), отмечающие начало и конец функции main. Удалите все, что находится между ними.

Теперь отредактируйте файл main.с, чтобы он выглядел так, как показано ниже. Добавьте в функцию main комментарий, две строки кода и еще один комментарий. Не беспокойтесь, если вы пока не понимаете смысл вводимых символов – мы только начинаем. Впереди целая книга, и вы скоро поймете, что все это означает.

#include <stdio.h>

int main (int argc, const char * argv[])

{

// Первые строки романа

printf("It was the best of times.\n"); printf("It was the worst of times.\n");

/*Так ли уж хорошо получилось? Возможно, стоит переписать. */

return 0;

}

(Обратите внимание: новый код, который вам нужно ввести, выделен жирным шрифтом. Обычным шрифтом выводится код, который уже находится в файле. Это правило будет соблюдаться во всей книге).

Вероятно, вы заметите, что во время ввода Xcode пытается помочь полезным советом. Эта чрезвычайно удобная функция называется автозавершением. Пока вы можете не обращать внимания на подсказки и вводить весь текст самостоятельно. В последующих главах книги попробуйте поэкспериментироватъ с автозавершением и убедитесь в том, что с ним код пишется удобнее и точнее. Различные параметры автозавершения задаются в настройках Xcode, вызываемых из меню Xcode.

Также обращайте внимание на цвет шрифта. Xcode использует разноцветные шрифты, чтобы вам было проще узнать комментарии и разные части кода. (Скажем, комментарии выделяются зеленым цветом.) Цветовое выделение удобно: через некоторое время работы с Xcode вы начнете инстинктивно замечать, когда цвета выглядят неестественно. Часто это указывает на синтаксическую ошибку в написанном коде (например, пропущенный завершитель «точка с запятой»). И чем скорее вы узнаете о допущенной синтаксической ошибке, тем проще ее будет исправить.

Разноцветные шрифты – всего лишь один из способов, которым Xcode сообщает о (возможно) допущенных ошибках.

Как запустить программу?

Когда содержимое файла main.с будет соответствовать приведенному ранее, пора запустить программу и посмотреть. что она делает. Этот процесс состоит из двух шагов: Xcodе сначала строит вашу программу, а потом запускает ее. В ходе построения Xcode готовит программный код к выполнению. В частности, при этом проверяются синтаксические и другие возможные ошибки.

Снова взгляните на левую панель окна Xcode. Эта область называется областью навигаци. В верхней части области навигации находится группа кнопок. В настоящее время на панели отображается навигатор проекта, в котором представлены файлы проекта. Кнопка навигатора проекта отмечена значком   .

Теперь найдите кнопку и щелкните на ней, чтобы открыть навигатор журнала. Xcode использует журнал (log) для вывода сообщений в ходе построения и запуска вашей программы.

Вы также можете использовать журнал для своих собственных целей. Например, строка программного кода

printf ("It was the best of times.\n");

приказывает вывести строку « It was the best of times.» в журнале.

Так как вы еще не построили и не запустили программу, в навигаторе журнала ничего нет. В левом верхнем углу окна проекта найдите кнопку, подозрительно похожую на кнопку Play в iTunes или на DVD-проигрывателе. Если навести указатель мыши на кнопку, появляется подсказка с надписью «BuiId and then run the current sсheme». В терминологии Xcode это означает: «Нажми эту кнопку, и я построю и запущу твою программу».

Если все было сделано правильно, вы будете вознаграждены следующим результатом:

А если нет, результат будет таким:

Что тогда делать? Тщательно сравните свой код с приведенным в книге. Поищите опечатки и пропущенные символы «точка с запятой». Среда Xcode выделяет строки, в которых, по ее мнению, есть ошибки. Обнаружив ошибку, исправьте ее и снова нажмите кнопку Run. Повторяйте, пока программа не будет построена успешно.

(Не отчаивайтесь, если построение этого кода или любой другой программы в книге не прошло с первого раза. Когда вы совершаете и исправляете ошибки, это помогает вам лучше понять, что вы делаете. Это даже лучше, чем если вам повезет правильно все сделать с первого раза.)

Когда построение пройдет успешно, найдите в верхней части навигатора журнала объект с меткой Debug AGoodStart. Щелкните на нем, чтобы вывести содержимое журнала для последнего запуска программы.

Содержимое журнала может быть довольно длинным. Для нас важна цитата из

Диккенса в самом конце вывода. Это результат выполнения вашего кода!

GNU gdb 6.3.50-­‐20050815 (Apple version gdb-­‐1705) (Tue Jul 5 07:36:45 UTC 2011) Copyright 2004 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-­‐apple-­‐darwin".tty /dev/ttys001  [Switching to process 2723 thread 0x0]

It was the best of times. It was the worst of times.

(На момент написания книги фирма Apple работала над новым отладчиком LLDB. Вскоре он должен заменить GDB, текущий отладчик. Если вы не видите всю информацию GDB, это означает, что стандартным отладчиком Xcode теперь является LLDB. Я вам завидую; так здорово оказаться в будущем!)

Источник: Аарон Хилегас, «Objective-C. Программирование для iOS и MacOS», 2012 г.

По теме:

  • Комментарии