Интернет магазин китайских планшетных компьютеров



Компьютеры - Objective-C

06 июля 2011


Оглавление:
1. Objective-C
2. Синтаксис языка
3. Создание новых классов
4. Как работает механизм сообщений
5. Протоколы
6. Обработка исключений
7. Создание и уничтожение объектов
8. Управление памятью
9. Категории
10. Class objects и Objective-C runtime
11. Разное



компилируемый объектно-ориентированный язык программирования корпорации Apple, построенный на основе языка Си и парадигм Smalltalk.

В отличие от C++, язык Objective-C полностью совместим с Си и код на Си компилируется. Объектная модель построена в стиле Smalltalk, то есть объектам посылаются сообщения.

Компилятор Objective-C входит в GCC и доступен на большинстве основных платформ. Язык используется в первую очередь для Mac OS X и GNUstep — двух реализаций объектно-ориентированного интерфейса OpenStep.

История

В начале 1980-х годов было распространено структурное программирование. Оно было разработано для того, чтобы «разбивать» программу на малые части, в основном, чтобы было легче работать над программами, исходный код которых увеличивался в размерах. Однако появлялись более сложные задачи, с решением которых структурное программирование плохо справлялось. Приходилось писать всё больше функций, которые очень редко могли использоваться в других программах.

Многие увидели в объектно-ориентированном программировании потенциальное решение возникшей проблемы. С одной стороны, Smalltalk использовали почти все более-менее сложные системы. С другой — использование виртуальных машин сильно тормозило работу системы и требовало огромных ресурсов.

ObjC был создан Брэдом Коксом в начале 1980х в его компании Stepstone. Он был заинтересован в решении проблемы повторного использования кода.

Целью Кокса было создание языка, поддерживающего концепцию software IC. Под этой концепцией понимается возможность собирать программы из готовых компонентов, подобно тому как сложные электронные устройства могут быть легко собраны из набора готовых интегральных микросхем.

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

Одной из целей было также создание модели, в которой сами классы также являются полноценными объектами, поддерживалась бы интроспекция и динамическая обработка сообщений.

Получившийся в результате язык Objective-C оказался крайне прост — его освоение у С-программиста займет всего несколько дней. Он является именно расширением языка С — в язык С просто добавлены новые возможности для объектно-ориентированного программирования. При этом любая программа на С является программой и на Objective-C.

Одной из отличительных черт Objective-C является его динамичность — целый ряд решений, обычно принимаемых на этапе компиляции, здесь откладывается непосредственно до этапа выполнения.

Ещё одной из особенностей языка является то, что он message-oriented в то время как С++ — function-oriented. Это значит, что в нём вызовы метода интерпретируются не как вызов функции, а именно как посылка сообщения объекту, подобно тому, как это происходит в Smalltalk-е.

Такой подход дает целый ряд плюсов — так любому объекту можно послать любое сообщение. Объект может вместо обработки сообщения просто переслать его другому объекту для обработки, в частности именно так можно легко реализовать распределенные объекты.

Привязка сообщения к соответствующей функции происходит непосредственно на этапе выполнения.

Язык Objective-C поддерживает нормальную работу с метаинформацией — так у объекта непосредственно на этапе выполнения можно спросить его класс, список методов и instance-переменных, проверить, является ли класс потомком заданного и поддерживает ли он заданный протокол и т. п.

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

На данный момент язык Objective-C поддерживается компиляторами gcc и llvm.

Довольно много в языке перенесено на runtime-библиотеку и сильно зависит от неё. Вместе с компилятором gcc поставляется минимальный вариант такой библиотеки. Также можно свободно скачать runtime-библиотеку компании Apple: Apple’s Objective-C runtime.

Эти две runtime-библиотеки довольно похожи, далее примеры будут ориентироваться на runtime-библиотеку от компании Apple.



Просмотров: 10650


<<< Mission Control
Photo Booth >>>