Программирование для iОS 7

Карта раздела

Подробнее...

Язык

Компания Apple предоставляет широкий выбор инструментальных средств для разработки прикладных программ для операционной системы iOS, которые выглядят и ведут себя так, как вы того хотите.

Подробнее...

Краткое описание языка С

Для того чтобы создавать приложения для операционной системы iOS, вам надо разговаривать с ней.

Подробнее...

Компиляция, инструкции и комментарии

Язык программирования С является компилируемым языком. Вы пишете свою программу в виде текста; для того чтобы ее запустить, следует выполнить два этапа. На первом текст компилируется в машинные команды; затем эти машинные команды выполняются. Таким образом, как и в любом компилируемом языке программирования, вы можете делать ошибки двух типов.

Подробнее...

Объявление, инициализация и типы данных переменных

Язык программирования С - строго типизированный. Каждая переменная до ее использования должна быть объявлена, и должен быть указан ее тип данных.

Подробнее...

Структуры

Язык С предлагает только несколько простых собственных типов данных. Каким же образом создавать более сложные типы данных? Существуют три способа: структуры, указатели и массивы. Структуры и указатели играют огромную роль при программировании для IOS. Массивы языка программирования С требуются гораздо реже, потому что Objective-C имеет свой собственный объектный тип NSArray.

Подробнее...

Указатели

Другим способом расширения набора типов, данных в языке программирования С являются указатели (K&R 5.1). Указатель представляет собой целое число (того или иного размера), обозначающее адрес в памяти, где находятся реальные данные.

Подробнее...

Массивы

Массив С (K&R 5.3) состоит из нескольких элементов одного и того же типа данных.

Подробнее...

Операторы

Арифметические операторы очень просты (Kd-R 2.5), но надо не забывать о следующем правиле: "целочисленное деление усекает дробную часть".

Подробнее...

Управление потоком выполнения

Управление потоком достаточно простое и обычно включает условие в круглых скобках и блок выполняемого кода в фигурных скобках.

Подробнее...

Функции

Язык программирования С является языком на основе функций (K&R 4.1). Функция представляет собой блок кода, определяющий, что должно быть сделано. Когда другой код вызывает эту функцию, выполняется ее код. Функция возвращает значение, которое подставляется как результат вызова функции.

Подробнее...

Параметры-указатели и оператор получения адреса

Язык Objective-C переполнен указателями (и звездочками), поскольку именно так он обращается к объектам. Методы Objective-C работают в основном с объектами, так что обычно они ожидают параметры-указатели и возвращают значения-указатели.

Подробнее...

Файлы

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

Подробнее...

Стандартная библиотека

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

Подробнее...

Другие директивы препроцессора

Из других доступных программисту директив препроцессора чаще всего используется директива #define. За ней следует имя и значение; во время обработки исходного текста препроцессором имя в файле с кодом заменяется указанным значением.

Подробнее...

Квалификаторы типов данных

Тип данных переменной может быть объявлен с квалификатором перед именем типа. Это добавление влияет на то, как эта переменная может использоваться в программе.

Подробнее...

Объекты

Объектно-ориентированное программирование

Objective-C, “родной” язык для программирования интерфейса API каркаса Cocoa, является объектно-ориентированным языком, и чтобы его использовать, программист должен понимать природу объектов и объектно-ориентированного программирования.

Подробнее...

Сообщения и методы

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

Подробнее...

Классы и экземпляры

Теперь мы переходим к очень характерным возможностям объектно-ориентированного программирования. Как и в реальном мире, каждый объект в мире объектно-ориентированного программирования имеет некоторый тип.

Подробнее...

Методы класса

Я уже говорил, что в программе ничего не происходит до тех пор, пока объекту не отправляется сообщение. Но я также сказал, что экземпляров нет до тех пор, пока программа их не создаст.

Подробнее...

Переменные экземпляра

Теперь, когда я показал, что классы являются объектами и им могут быть отправлены сообщения, вы можете удивиться — зачем тогда вообще нужны экземпляры? Почему для объектно-ориентированного программирования недостаточно существования классов как объектов?

Подробнее...

Объектно-ориентированная философия

Подытожить природу объектов можно двумя фразами: инкапсуляция функциональности и поддержка состояния. (Много лет назад я уже воспользовался этими фразами в своей книге REALbasic: The Definitive Guide.)

Подробнее...

Объекты и сообщения Objective-C

Одним из первых объектно-ориентированных языков программирования, получивших широкое распространение, был Smalltalk.

Подробнее...

Ссылка на объект является указателем

Ссылка представляет собой именно то, что вы себе представляете, — способ выбора некоторой определенной отдельной сущности. Особенно хороший вид ссылки — имя.

Подробнее...

Ссылки на экземпляры, инициализация и nil

Простое объявление типа ссылки на экземпляр не влечет за собой существование соответствующего экземпляра.

Подробнее...

Ссылки на экземпляры и присваивание

Как я уже говорил в главе 1, присвоение указателю не приводит к изменению значения, которое находится “на дальнем конце указателя”, на которое он указывает; это просто перенацеливание указателя.

Подробнее...

Ссылки на экземпляры и управление памятью

“Указательная” природа ссылок на экземпляры в Objective-C имеет определенные последствия для системы управления памятью.

Подробнее...

Методы и сообщения

Метод в Objective-C определен как часть класса. Он имеет три аспекта.

Подробнее...

Вызов метода

Чтобы отправить сообщение объекту, используется выражение сообщения, которое также называют для простоты и по аналогии с функциями С вызовом метода.

Подробнее...

Объявление метода

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

Подробнее...

Вложенные вызовы методов

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

Подробнее...

Отсутствие перегрузки

Тип данных, возвращаемых методом вместе с типами данных каждого из его параметров в порядке передачи этих параметров методу, составляют сигнатуру этого метода.

Подробнее...

Списки параметров

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

Подробнее...

Когда отправка сообщений не работает

Механизм отправки сообщений имеет фундаментальное значение для Objective-C.

Подробнее...

Сообщения для nil

Ссылке на экземпляр очень легко оказаться указывающей на не экземпляр — то есть на nil.

Подробнее...

Нераспознанные селекторы

Возможна ситуация с отправкой сообщения объекту, у которого нет соответствующего метода.

Подробнее...

Приведение типа и тип id

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

Подробнее...

Сообщения как тип данных

Предыдущие разделы вращалась вокруг того факта, что Objective-C до времени выполнения не знает, какому объекту посылается сообщение.

Подробнее...

Функции С

Хотя ваш код, несомненно, будет вызывать массу методов Objective-C, вероятно, он также будет вызывать и некоторые функции С.

Подробнее...

CFTypeRef

Многие объектные типы Objective-C имеют низкоуровневые аналоги С, вместе с функциями С для работы с ними.

Подробнее...

Блоки

Блок представляет собой расширение языка С, введенное в OS X 10.6 и доступное начиная с iOS 4.0.

Подробнее...

Подкласс и суперкласс

Классы Objective-C

В этой главе описаны некоторые лингвистические и структурные особенности Objective-C, связанные с классами; в следующей главе мы рассмотрим то же самое по отношению к экземплярам.

Подробнее...

Интерфейс и реализация

Как вы знаете из главы 2, весь ваш код располагается в том или ином классе. Поэтому первое, что мы должны сделать, — это указать, что понимается под помещением кода “в класс” в языке Objective-C. Как Objective-C решает, лингвистически и структурно, что “данный код предназначен для такого-то класса”?

Подробнее...

Заголовочный файл и файл реализации

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

Подробнее...

Методы классов

Методы классов в общем случае имеют два основных применения.

Подробнее...

Секретная жизнь классов

Метод класса может вызываться с помощью отправки сообщения непосредственно имени класса.

Подробнее...

Экземпляры Objective-C

Экземпляры являются сердцем активности программы на языке Objective-C.

Подробнее...

Создание экземпляров

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

Подробнее...

Готовые экземпляры

Один из способов создания экземпляров — косвенный, путем вызова кода, который создает экземпляр за вас.

Подробнее...

Создание экземпляра класса с нуля

Альтернативой получению готового экземпляра является явное требование к классу создать экземпляр.

Подробнее...

Создание экземпляра класса на основе nib

Третий способ создания экземпляра — с помощью nib-файла. Nib-файл представляет собой файл в созданном приложении, сгенерированный из .storyboard-файла или . xib-файла, в котором вы “рисуете” части пользовательского интерфейса.

Подробнее...

Полиморфизм

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

Подробнее...

Ключевое слово self

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

Подробнее...

Ключевое слово SUPER

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

Подробнее...

Переменные экземпляра и методы доступа

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

Подробнее...

Кодирование ключ-значение

Язык Objective-C предоставляет средство для перевода строки в вызов метода доступа, которое называется кодированием ключ-значение (key-value coding).

Подробнее...

Свойства

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

Подробнее...

Как написать инициализатор

Теперь, когда вы знаете о ключевых словах self и super и переменных экземпляра, мы можем вернуться к теме, которую я беспечно пропустил ранее.

Подробнее...

Ссылки на экземпляры

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

Подробнее...

Интегрированная среда разработки

К данному моменту вы, несомненно, страстно желаете вскочить и начать писать приложение.

Подробнее...

Анатомия проекта Xcode

Xcode — это приложение, которое используется для разработки приложений в системе iOS.

Подробнее...

Новый проект

Еще до того, как вы напишете первую строчку кода, проект Xcode уже имеет довольно богатое содержание.

Подробнее...

Окно проекта

Проект Xcode содержит множество информации о том, какие файлы образуют проект и как они используются при создании приложения.

Подробнее...

Панель навигатора

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

Подробнее...

Панель утилит

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

Подробнее...

Редактор

В центре окна проекта находится редактор. Именно здесь выполняется реальная работа, чтение и запись кода (см. главу 9), а также разработка интерфейса в файлах . storyboard или . xib.

Подробнее...

Файл проекта и его зависимости

Первый элемент в навигаторе проекта (<Command+l>) представляет собой сам проект. (В проекте Empty Window, созданном в этой главе ранее, этот пункт назывался Empty Window.)

Подробнее...

Цель

Цель (target) — это коллекция компонентов, а также правил и настроек для сборки продукта из этих компонентов. Когда вы выполняете сборку, вы на самом деле создаете цель.

Подробнее...

Фазы сборки

Отредактируйте цель Empty Window и щелкните на пункте Build Phases в верхней части редактора (рис. 6.8). Вы увидите этапы, из которых состоит сборка приложения.

Подробнее...

Настройки сборки

Фазы сборки — это лишь один аспект механизма, позволяющего цели выяснять способ сборки приложения. Вторым аспектом являются настройки.

Подробнее...

Конфигурации

Значения настроек сборки образуют несколько списков, хотя в конкретной сборке применяется только один список.

Подробнее...

Схемы и предназначения

До сих пор я ничего не говорил о том, как среда Xcode узнает, какую конфигурацию использовать для конкретной сборки.

Подробнее...

Переименование частей проекта

Имя, присвоенное вашему проекту в процессе его создания, используется во многих местах. Это создает у новичков ложное мнение, что они никогда не смогут переименовать проект, не испортив его.

Подробнее...

От проекта к запуску приложения

Файл приложения представляет собой папку особого вида, которая называется пакетом (package), а специальная разновидность пакета называется комплектом (bundle).

Подробнее...

Настройки в списке свойств

Среда Xcode, проект и цель выясняют значения настроек сборки, причем некоторые из них могут отличаться в зависимости от конфигурации сборки.

Подробнее...

Nib-файлы

Nib-файл — это описание фрагмента пользовательского интерфейса в скомпилированном формате в файле с расширением . nib.

Подробнее...

Дополнительные ресурсы

Ресурсы — это вспомогательные файлы, встроенные в комплект вашего приложения, для того чтобы извлечь их при выполнении приложения. К ним относятся, например, изображения, которые вы хотите вывести на экран, или звуки, которые хотите воспроизвести.

Подробнее...

Кодирование и запуск приложения

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

Подробнее...

Каркасы и пакеты SDK

Каркас — это библиотека скомпилированного кода, который используется вашей программой.

Подробнее...

Управление nib-файлами

Термин nib — это сокращение от “NeXTStep Interface Builder”, которое использовалось в качестве расширения файлов . nib.

Подробнее...

Обзор интерфейса nib-редактора

Рассмотрим интерфейс nib-редактора в среде Xcode.

Подробнее...

Структура документа

Структура документа иерархически отображает отношения между объектами в nib-файле и немного отличается в зависимости от того, какой файл редактируется — . storyboard или .xib.

Подробнее...

Канва

Канва обеспечивает графическое изображение nib-объекта интерфейса верхнего уровня вместе с его дочерними представлениями, аналогично любому графическому редактору.

Подробнее...

Инспекторы и библиотеки

Вместе с nib-редактором открываются четыре инспектора, которые применяются к любому объекту, выбранному в структуре документа, в доке или на канве.

Подробнее...

Загрузка nib-файлов

Nib-файл — это коллекция потенциальных экземпляров, которые называются nib-объек-тами.

Подробнее...

Выходы и владелец nib-файла

При загрузке nib-файла, когда возникают его экземпляры, существует одна проблема: эти экземпляры бесполезны.

Подробнее...

Создание выхода

Часто возникает необходимость самостоятельно создать выход. Для того чтобы продемонстрировать, как это делается, будем использовать проект Empty Window.

Подробнее...

Неправильная конфигурация выхода

При настройке выхода необходимо одновременно выполнить несколько условий. Если вы не сделаете этого, то рано или поздно ваш выход станет работать неправильно.

Подробнее...

Удаление выхода

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

Подробнее...

Другие способы создать выходы

Ранее мы создали выход вручную, объявив свойство в заголовочном файле класса и проведя соединительную линию от кружка выхода в инспекторе связей в nib-редакторе к кнопке.

Подробнее...

Связи выхода

Связь выхода — это переменная экземпляра класса NSArray (в коде), имеющая (в nib-файле) многочисленные связи с объектами того же типа.

Подробнее...

Связи действий

Кроме связей выходов в nib-файле существуют связи действий. Связь действия, как и связь выхода, — это способ, позволяющий одному объекту в nib-файле ссылаться на другой объект.

Подробнее...

Дополнительная инициализация экземпляров, созданных из Nib-файлов

После завершения загрузки nib-файла его экземпляры являются абсолютно полноценными; они инициализированы и настроены с помощью всех атрибутов, указанных в окнах инспекторов атрибутов и размеров, а их выводы были использованы для задания значений соответствующих переменных экземпляров.

Подробнее...

Документация

Знание бывает двух видов. Мы либо знаем предмет, либо знаем, где найти информацию о нем.

Сэмюэль Джонсон, Биография

Подробнее...

Справочное окно

Основным механизмом доступа к документации в среде Xcode является справочное окно (Help1^Documentation and API Reference, <Command+Option+Shift+?>).

Подробнее...

Страницы документации о классах

В подавляющем большинстве случаев искомой страницей документации является справка о классе.

Подробнее...

Образцы кода

Компания Apple предоставляет большое количество образцов кода для проектов.

Подробнее...

Справка Quick Help

Справка Quick Help — это лаконичная документация о конкретных темах, обычно об имени символа (класса или метода).

Подробнее...

Символы

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

Подробнее...

Заголовочные файлы

Иногда полезной формой документации может стать заголовочный файл.

Подробнее...