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

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

Жанры

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

Управление памятью

Копирование объектов

Архивация

Введение в Сосоа

Написание приложений iPhone

Приложение A

Приложение B

Приложение C

Приложение D

Глава 1. Введение

Деннис Ритчи (Dennis Ritchie) был первым, кто в начале 1970-х гг. начал про-граммировать на языке С в компании AT&T Bell Laboratories. Однако до конца 1970-х гг. этот язык не получат широкого распространения и поддержки, по-скольку нс существовало готовых компиля торов с языка С для коммерческого использования вне Bell Laboratories. Росту популярности С способствовал рост популярности операционной системы UNIX, которая почти целиком была на-писана на С.

В начале 1980-х гг. Бред Кокс (Brad J. Сох) разработал язык Objective-C. Этот язык основывался на языке SmallTalk-80. Objective-C был создан поверх языка С, то есть к языку С были добавлены расширения для создания нового языка программирования, который позволял создавать объекты и работать с ними.

Компания NeXT Software в 1988 г. лицензировала язык Objective-C, а также разработала его библиотеки и среду разработки под названием NEXTSTEP. В 1992 г. поддержка Objcctivc-C была добавлена в среду разработки GNU организации Free Software Foundation. Авторские права на все продукты Free Software Foundation (FSF) принадлежат FSF. Они выпускаются как лицензия GNU General Public License.

В 1994 r. NeXT Computer и Sun Microsystems выпустили стандартизованную спецификацию системы NEXTSTEP под названием OPENSTEP. Реализация OPENSTEP, выпущенная Free Software Foundation, называется GNUStep. Версия для Linux, включающая также ядро Linux и среду разработки GNUStep, называется поэтому LinuxSTEP.

20 декабря 1996 г. компания Apple Computer объявила, что приобретает NeXT Software, и среда NEXTSTEP/OPENSTEP стала основой для следующей основной версии операционной системы Apple — OS X. Версия компании Apple этой среды разработки была названа Cocoa. Встроенная поддержка языка Objectivc- С в сочетании со средствами разработки, такими как Project Builder (или его преемника Xcode) и Interface Builder, позволила Apple создать мощную среду разработки для разработки приложений в Mac OS X.

В 2007 г. Apple выпустила обновление языка Objcctive-C и назвала его Objective-C 2.0. Эта версия языка описывается в настоящем (втором) издании этой книги.

После выпуска iPhone в 2007 г. разработчики программ потребовали, чтобы им предоставили возможности разрабатывать приложения для этого передового устройства. Поначалу компания Apple сомневалась, стоит ли предоставлять разработку приложений сторонним компаниям. Для «умиротворения» требо-вательных разработчиков компания предоставляла им возможность разработки веб-приложений. Такое веб-приложение выполняется в iPhone под управлением встроенного веб-браузера Safari и требует, чтобы пользователь подсоединялся к веб-сайту, где содержится приложение, чтобы запускать его. Разработчики были недовольны из-за многих ограничений, присущих веб-приложениям, и вскоре компания Apple объявила, что разработчики смогут разрабатывать так называемые собственные (native) приложения для iPhone.

Собственное приложение хранится на самом iPhone и выполняется под уп-равлением операционной системы iPhone таким же образом, как встроенные приложения iPhone {такие как Contacts, iPod и Weather). OS iPhone является фактически версией Mac OS X, а это означает, что приложения для iPhone можно разрабатывать и отлаживать, например, на MacBook Pro. И действительно, компания Apple вскоре выпустила мощный комплект разработки программ (Software Development Kit, SDK), который позволил быстро разрабатывать и отлаживать приложения iPhone. Наличие имитатора (simulator) iPhone позволило разработчикам отлаживать свои приложения на их компьютерах, без не-обходимости загрузки и тестирования программ непосредственно на iPhone или iPod Touch. 1.1. Что вы узнаете из этой книги

Обдумывая, как писать учебник по Objective-C, я должен был принять важное решение. Как и в других книгах по Objective-C, я мог бы предположить, что читатель уже знает, как писать программы на языке С. Я мог бы обучать этому языку, исходя из возможностей обширной библиотеки процедур, например, в фреймворках Foundation и Application Kit. В некоторых книгах принято обучать использованию средств разработки, таких как Xcodc и Interface Builder на Маках.

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

Поэтому я решил, что нс буду начинать с обученпия языку С и не буду пред-полагать, что читатель знает С. Вместо этого я принял необычный подход: обу-чение языку 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.

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

Герой

Бубела Олег Николаевич
4. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Герой

Матабар IV

Клеванский Кирилл Сергеевич
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар IV

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

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

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

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

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

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

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

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

Идеальный мир для Лекаря 11

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11

Бестужев. Служба Государевой Безопасности

Измайлов Сергей
1. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности

Последний Герой. Том 1

Дамиров Рафаэль
1. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Последний Герой. Том 1

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

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

Страж Кодекса

Романов Илья Николаевич
1. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса

Путь Шедара

Кораблев Родион
4. Другая сторона
Фантастика:
боевая фантастика
6.83
рейтинг книги
Путь Шедара