Шрифт:
Поэтому я решил, что нс буду начинать с обученпия языку С и не буду пред-полагать, что читатель знает С. Вместо этого я принял необычный подход: обу-чение языку Objective-C и базовому языку С как одному объединенному языку сточки зрения объектно-ориентированного профаммирования. Цель этой книги определена се названием — обучение тому, какпрофаммировать на Objective- С. Она не содержит подробных сведений о том, как использовать средства раз-работки, доступные для ввода и отладки программы, и не содержит полных инструкций по разработке интерактивных фафических приложений с помощью Cocoa. Вы можете ознакомиться с этим материалом где-либо еще после этого, как научитесь писать профаммы на Objective-C. На самом деле все это будет намного проще после того, как вы разберетесь с профаммированием на Objective-C. В этой книге не предполагается, что читатель имеет серьезный опыт программирования (или вообще имеет такой опыт). И если вы новичок в программировании, то сможете изучать Objcctive-C как свой первый программный язык.
Эта книга учит языку Objectivc-C с помощью примеров. Представляя каждое новое средство языка, я обычно привожу пример небольшой законченной программы, иллюстрирующей это средство. Правильно выбранный пример программы действует подобно изображению, которое может заменить тысячу слов. Я настоятельно рекомендую выполнить каждую программу (все они дос-тупны в Интернете) и сравнить результаты, полученные на вашем компьютере, с результатами, показанными в книге. Это позволит вам не только изучать язык и его синтаксис, но и знакомиться с компиляцией и выполнением программ на Objective-C. 1.2. Как организована эта книга
Эта книга разделена на три логические части. В части I, «Язык Objectivc-C 2.0», излагаются основы самого языка. В части II,» Framework Foundation «, описывается работа с обширным набором готовых классов, которые образуют фреймворк Foundation. В части III, «Сосоа и SDK iPhone», дастся обзор фреймворка Cocoa Application Kit и приводится процесс разработки простого приложения iPhone с использованием фреймворка UIKit, а также разработка и отладка кода с помощью Xcode и Interface Builder.
Фреймворк — это набор классов и процедур, логически сгруппированных для упрощения разработки программ. Многие возможности программирования на Objective-C основываются на использовании существующих разнообразных фреймворков. В главе 2 вы напишете свою первую профамму на Objective-C.
Поскольку это не книга по профаммированию для Сосоа, здесь не приводится подробное описание фафических пользовательских интерфейсов (GUI), и они почти не затрагиваются до части III. Поэтому мне потребовался подход, позволяющий вводить данные в профамму и выводить результаты. В большинстве примеров этой книги ввод в профамму выполняется с клавиатуры, а вывод выполняется в окне: это терминальное окно (Terminal), если вы используете дсс из командной строки, или консольное окно (Console), если используется Xcode.
В главе 3, «Классы, объекты и методы», излагаются основы объектно-ори-ентированного профаммирования. В этой главе вводится некоторая терминология, но она сведена к минимуму. Там же вводится механизм определения класса и средства передачи сообщений экземплярам или объектам. Преподаватели и опытные профаммисты отмстят, что для объявления объектов я использую статический контроль типов. Я считаю, что это наиболее подходящий способ для начала обучения, поскольку компилятор может обнаруживать больше ошибок, делая профамму более понятной и позволяя начинающему программисту явно объявлять типы данных, когда они известны. Поэтому понятие типа id и описание его возможностей нс затрагиваются в полной мере до главы 9, «Полиморфизм, динамический контроль типов и динамическое связывание».
В главе 4, «Типы данных и выражения», описываются базовые типы данных Objective-C и их применение в ваших программах.
В главе 5, «Циклы в программах», вводятся три оператора цикла: for, while и do.
Принятие решений является основой любого языка программирования. В главе 6, «Принятие решений» подробно описываются операторы if и switch языка Objective-C.
В главе 7, «Более подробно о классах», приводится более глубокое изложение работы с классами и объектами. Здесь подробно описывается, как работать с методами, передавать несколько аргументов методам и использовать локальные переменные.
В главе 8, «Наследование», вводится ключевое понятие наследования. Это упрощает разработку программ, поскольку вы можете использовать то, что пе-редается из вышележащих уровней. Наследование и подклассы упрощают из-менение и расширение существующих определений классов.
В главе 9 описываются три основополагающие характеристики языка Objective-C. Здесь излагаются три ключевые концепции: полиморфизм, дина-мический контроль типов и динамическое связывание.
В главах 10—13 завершается описание языка Objective-C. Здесь рассматри-ваются такие вопросы, как инициализация объектов, протоколы, категории, препроцессор, и некоторые основ языка С: функции, массивы, структуры и указатели. Эти возможности не обязательно использовать (обычно их нужно избегать) в начальный период разработки объектно-ориентированных приложений. Рекомендуется пропустить главу 13 при первом чтении этой книги и возвращаться к ней по мере необходимости для изучения какого-либо конкретного средства языка С.
Часть II начинается с главы 14, «Введение в Foundation Framework», где дается введение во фреймворк Foundation и описывается доступ к его документации.
В главах 15-19 описываются важные возможности Foundation framework. Это числовые и строковые объекты, коллекции, файловая система, управление па-мятью и процесс копирования и архивации объектов.
Закончив работу с частью II, вы сможете разрабатывать довольно сложные программы на Objective-C, которые используют фреймворк Foundation.