О Objective C

Objective C является основным языком программирования, который Вы используете при записи программного обеспечения для OS X и iOS. Это - надмножество языка программирования C и обеспечивает объектно-ориентированные возможности и динамическое время выполнения. Objective C наследовал синтаксис, типы примитивов и операторы управления потоком C и добавляет синтаксис для определения классов и методов. Это также добавляет поддержку уровня языка управления графом объектов и литералов объектов при обеспечении динамического контроля типов и привязки, задерживая много ответственности до времени выполнения.

Сразу

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

Приложение создается из сети объектов

При создании приложений для OS X или iOS, Вы проведете большую часть своего времени, работая с объектами. Те объекты являются экземплярами классов Objective C, некоторые из которых предоставлены для Вас Касанием Какао или Какао и некоторые из которых Вы запишете себя.

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

Категории расширяют существующие классы

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

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

Протоколы определяют обменивающиеся сообщениями договоры

Большинство работы в приложении Objective C происходит в результате объектов, отправляющих сообщения друг другу. Часто, эти сообщения определяются методами, объявленными явно в интерфейсе класса. Иногда, однако, полезно быть в состоянии определить ряд связанных методов, не связывающихся непосредственно к определенному классу.

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

Значения и наборы часто представляются, в то время как возражает Objective C

Распространено в Objective C использовать Сенсорные классы Какао или Какао для представления значений. NSString класс используется для строк символов, NSNumber класс для различных типов чисел, таких как целочисленная или плавающая точка, и NSValue класс для других значений, таких как структуры C. Можно также использовать любые из типов примитивов, определенных языком C, такой как int, float или char.

Наборы обычно представляются как экземпляры одного из классов набора, такой как NSArray, NSSet, или NSDictionary, которые каждый используются для сбора других объектов Objective C.

Блоки упрощают общие задачи

Блоки являются функцией языка, представленной C, Objective C и C++ для представления единицы работы; они инкапсулируют блок кода вместе с полученным состоянием, делающим их подобными закрытиям в других языках программирования. Блоки часто используются для упрощения общих задач, таких как перечисление набора, сортируя и тестируя. Они также упрощают планировать задачи для параллельного или асинхронного выполнения с помощью технологий как Grand Central Dispatch (GCD).

Ошибочные объекты используются для проблем во время выполнения

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

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

Код Objective C следует установленным соглашениям

При записи кода Objective C необходимо иметь в виду много установленных соглашений кодирования. Имена методов, например, запускаются со строчной буквы и используют Camel-регистр для многократных слов; например, doSomething или doSomethingElse. Это не просто капитализация, это важно, хотя; необходимо также удостовериться, что код максимально читаем, что означает, что имена методов должны быть выразительными, но не слишком многословными.

Кроме того, существует несколько соглашений, требующихся, если Вы хотите использовать в своих интересах функции платформы или язык. Методы доступа свойства, например, должны следовать строгим соглашениям о присвоении имен для работы с технологиями как Key-Value Coding (KVC) или Key-Value Observing (KVO).

Предпосылки

Если Вы плохо знакомы с OS X или разработкой iOS, необходимо прочитать, Начинают Разрабатывать приложения для iOS Сегодня или Начинают Разрабатывать Приложения Mac Сегодня прежде, чем считать этот документ, получить общий обзор процесса разработки приложений для iOS и OS X. Кроме того, необходимо познакомиться с XCode прежде, чем попытаться следовать за упражнениями в конце большинства глав в этом документе. XCode является IDE, используемый для создания приложений для iOS и OS X; Вы будете использовать его, чтобы записать Ваш код, разработать пользовательский интерфейс Вашего приложения, протестировать Ваше приложение и отладить любые проблемы.

Несмотря на то, что предпочтительно иметь некоторое знакомство с C или одним из языков на базе С, таких как Java или C#, этот документ действительно включает встроенные примеры основных функций языка C, такие как операторы управления потоком. Если у Вас есть знание другого высокоуровневого языка программирования, такого как Ruby или Python, необходимо быть в состоянии следовать за содержанием.

Разумное покрытие дано общим принципам объектно-ориентированного программирования, особенно поскольку они применяются в контексте Objective C, но предполагается, что у Вас есть, по крайней мере, минимальное знакомство с основными объектно-ориентированными понятиями. Если Вы не знакомы с этими понятиями, необходимо считать соответствующие главы в Понятиях в Программировании Objective C.

См. также

Содержание в этом документе применяется к Xcode 4.4 или позже и предполагает предназначение для или OS X v10.7 или позже, или iOS 5 или позже. Для получения дополнительной информации о XCode, см. Обзор XCode. Для получения информации о доступности функции языка посмотрите Индекс Доступности Функции Objective C.

Приложения Objective C используют подсчет ссылок для определения времени жизни объектов. По большей части функция Automatic Reference Counting (ARC) компилятора заботится об этом для Вас. Если Вы неспособны использовать в своих интересах ARC, или должны преобразовать или поддержать устаревший код, управляющий памятью объекта вручную, необходимо считать Усовершенствованное Руководство по программированию управления памятью.

В дополнение к компилятору язык Objective C использует систему во время выполнения для активации ее динамических и объектно-ориентированных опций. Несмотря на то, что Вы не должны обычно волноваться о том, как Objective C «работает», возможно взаимодействовать непосредственно с этой системой во время выполнения, как описано Руководством по программированию Времени выполнения Objective C и Ссылкой Времени выполнения Objective C.