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

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

Жанры

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

Команды вводятся в каждой строке после символа $ (или % — в зависимости от настройки вашего приложения Terminal). Это вполне понятно, если вы знакомы с использованием UNIX,

Сначала нужно ввести в файл строки из программы 2.1. Можно начать с со-здания папки, в которой будут сохраняться примеры ваших программ. Затем для ввода вашей программы нужно запустить текстовый редактор, например, vi или emacs. sh-2.05a$ mkdir Progs # Создание папки для сохранения программ sh-2.05a$ cd Progs # Переход в новую папку sh-2.05a$ vi progl.m # Запуск текстового редактора для ввода программы

Рис. 2.10.

Окно Terminal

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

Для файлов Objective-C можно выбрать любое имя, но в конце имени должны стоять символы .т, которые указывают компилятору, что используется Objective-C.

Для файла с текстом программы можно выполнять компиляцию и сборку с помощью компилятора GNU Objective-C, который называется дсс. Команда дсс имеет следующий формат: gcc -framework Foundation файлы -о имя_программы

Опция -framework Foundation указывает, что используется информация о Foundation framework.

Эта опция должна быть указана в командной строке. Файлы — это список файлов для компиляции. В нашем примере такой файл только один (с именем progl.m). Имя_программы — это имя исполняемого файла, который будет создан, если файл скомпилируется без ошибок.

Эта программа называется prog 1. Ниже приводится командная строка для компиляции этой программы: $ gcc -framework Foundation progl .m -о progl # Компилировать progl.m и назвать ее prog 1 $

Возврат символа командной строки без каких-либо сообщений означает, что в программе не обнаружено ошибок. Вы можете выполнить такую программу, введя имя progl в командной строке: $ progl Выполнение progl sh: prog 1: command not found (команда не найдена) $

Вы можете получить этот результат, если раньше не использовали Terminal. Оболочка UNIX (то есть приложение, выполняющее вашу программу), «не зна-ет», где находится progl (мы не будем подробно объяснять это здесь). Есть два варианта решения этой проблемы. Первый — поставить перед именем программы символы ./, чтобы оболочка искала программу в текущей папке. Второй— добавить папку, в которой хранится ваша программа (или просто текущей папки), к переменной оболочки PATH. Мы используем первый способ: $ ./progl Выполнение progl 2008-06-08 18:48:44.210 progl [7985:10b] Programming is fun! $

Написание и отладка программ Objective-C из среды Terminal — вполне до-пустимый, но стратегически ошибочный подход. Приложения Mac OS X или iPhone — это не просто исполняемый файл, который должен быть «упакован» в пакет приложения. Создать такие приложения из приложения Terminal очень нелегко, в отличие от специализированной среды Xcode. Поэтому далее мы зай-мемся изучением Xcode как среды для разработки ваших программ. 2.2. Объяснение вашей первой программы

Познакомившись с компиляцией и выполнением программы Objective-C, рас-смотрим эту программу более подробно. Еще раз приведем ее текст. // First program example (Первый пример программы) #import <Foundation/Foundation.h> int main (int arge, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog (@"Programming is fun!"); [pool drain]; return 0; }

В Objective-C прописные и строчные буквы различаются. Кроме того, для Objective-C не имеет значения, с какого места строки вы начинаете ввод: вводить символы можно с любой позиции строки. Это позволяет сделать программы более удобными для чтения.

В первой строке программы мы встречаем

понятие комментария: // First program example

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

Комментарии можно вставлять в программу Objective-C двумя способами. Один из них - это использование двух последовательных слэшей (//). Компилятор игнорирует все символы после слэшей, вплоть до конца строки.

Комментарий можно также инициировать с помощью символов / и . Ком-ментарий начинается с символов / и завершается символами / с любым числом предшествующих пробелов. Все символы между открывающими / и зак-рывающими */ считаются частью комментария и игнорируются компилятором Objective-C. Эта форма комментария часто используется, если комментарий занимает несколько строк: /* Этот файл реализует класс с именем Fraction, который представляет дробные числа. Используются методы, которые позволяют работать с дробями, например, addition (сложение), subtraction (вычитание) и т.д. Более подробную информацию см. в документе: /usr/docs/classes/fractions.pdf */

Вы сами выбираете стиль комментариев. Вложенность комментариев в стиле /* не допускается.

Имеются три причины для того, чтобы вставлять комментарии в программу. Во-первых, намного проще документировать программу, когда вы еще держите в уме ее логику, чем восстанавливать ее логику после того, как программа завершена. Во-вторых, при вставке комментариев на ранних стадиях вы облег-чаете себе этап отладки, когда происходит выявление и отладка ошибок. Ком-ментарий не только помогает вам (и другим) в чтении программы, но и помогает выяснять путь к источнику логической ошибки. И последнее — я не встречал ни одного программиста, которому нравилось бы документирование программы, так что после окончания отладки программы вы вряд ли займетесь вставкой комментариев. Менее скучно — вставлять их при разработке программы.

В следующей строке программы 2.1 вы указываете компилятору, что нужно найти и обработать файл с именем Foundation.h: #import <Foundation/Foundation.h>

Это системный файл. #import указывает, что нужно импортировать или включить в программу информацию из этого файла так, как если бы ввели ее в этом месте вручную. Импорт файла Foundation.h выполняется потому, что он содержит классы и функции, используемые в этой программе.

Следующая строка указывает, что программа имеет имя main: int main (int argc, const char *argv[])

Это специальное имя, которое указывает, где должно начаться выполнение программы. Зарезервированное слово int, которое поставлено перед main, ука-зывает тип значения, которое возвращает main — целое (более подробно об этом см. ниже). Между открывающей и закрывающей круглыми скобками находятся аргументы командной строки, которые мы будем рассматривать в главе 13.

Теперь, после идентификации main для системы, вы можете задать, какие действия выполняет программа. Для этого все программные операторы должны быть заключены в фигурные скобки. В самом простом случае оператор (statement) — это просто выражение, которое заканчивается символом «точка с запятой». Система интерпретирует все программные операторы между фигурными скобками как часть процедуры main. Программа 2.1 содержит четыре оператора. Первый оператор в программе 2.1 имеет следующий вид: NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

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

Мы друг друга не выбирали

Кистяева Марина
1. Мы выбираем...
Любовные романы:
остросюжетные любовные романы
прочие любовные романы
современные любовные романы
5.00
рейтинг книги
Мы друг друга не выбирали

Первый среди равных. Книга VI

Бор Жорж
6. Первый среди Равных
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Первый среди равных. Книга VI

Весь цикл «Десантник на престоле». Шесть книг

Ланцов Михаил Алексеевич
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг

Законник Российской Империи. Том 2

Ткачев Андрей Юрьевич
2. Словом и делом
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
6.40
рейтинг книги
Законник Российской Империи. Том 2

Кодекс Охотника. Книга XXXVIII

Винокуров Юрий
38. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
юмористическое фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXXVIII

Князь Андер Арес 4

Грехов Тимофей
4. Андер Арес
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Князь Андер Арес 4

Звездная Кровь. Экзарх II

Рокотов Алексей
2. Экзарх
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Звездная Кровь. Экзарх II

Тайны затерянных звезд. Том 2

Лекс Эл
2. Тайны затерянных звезд
Фантастика:
боевая фантастика
космическая фантастика
космоопера
фэнтези
5.00
рейтинг книги
Тайны затерянных звезд. Том 2

Второгодка. Книга 5. Презренный металл

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

Черный дембель. Часть 3

Федин Андрей Анатольевич
3. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 3

Старый, но крепкий 3

Крынов Макс
3. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 3

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

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

Точка Бифуркации VI

Смит Дейлор
6. ТБ
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Точка Бифуркации VI

Мечников. Клятва лекаря

Алмазов Игорь
2. Жизнь Лекаря с нуля
Фантастика:
альтернативная история
аниме
фэнтези
попаданцы
6.60
рейтинг книги
Мечников. Клятва лекаря