Включая платформы

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

Включая платформы в Вашем проекте

Для включения платформы в проект XCode выберите Project> Add to Project и выберите каталог платформы. Также Вы можете щелчок управления Ваша группа проектов и выбирать Add Files> Existing Frameworks из контекстного меню. Когда Вы добавляете существующую платформу к своему проекту, XCode просит, чтобы Вы связали его с одной или более целями в Вашем проекте. После того, как связанный, XCode автоматически соединяет платформу против получающейся исполнимой программы.

Вы включаете заголовочные файлы платформы в свой код с помощью #include директива. Если Вы работаете в Objective C, можно использовать #import директива вместо #include директива. Эти две директивы имеют те же основные результаты. но #import директива гарантирует, что тот же заголовочный файл никогда не включается несколько раз. Существует два пути к включению заголовков платформы:

#include <Framework_name/Header_filename.h>
#import <Framework_name/Header_filename.h>

В обоих случаях, Framework_name имя платформы и Header_filename имя заголовочного файла в той платформе или в одной из ее подплатформ.

Когда включая заголовочные файлы платформы, традиционно включать только основной заголовочный файл платформы. Основной заголовочный файл является заголовочным файлом, имя которого соответствует имя платформы. Например, платформа Адресной книги имеет основной заголовочный файл с именем AddressBook.h. Для включения этого заголовка в источник Вы использовали бы следующую директиву:

#include <AddressBook/AddressBook.h>
#import <AddressBook/AddressBook.h>

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

Определение местоположения платформ в нестандартных каталогах

Если Ваш проект соединяется с платформами, не включенными ни в одно из стандартных расположений, необходимо явно указать расположение той платформы, прежде чем XCode сможет определить местоположение своих заголовочных файлов. Для указания расположения такой платформы добавьте каталог, содержащий платформу к опции «Framework Search Paths» проекта XCode. XCode передает этот список каталогов к компилятору и компоновщику, оба использующим список для поиска ресурсов платформы.

Заголовки и производительность

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

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

Ограничения на соединение подплатформы

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

В XCode команда Add Frameworks выводит на экран доступные платформы в /System/Library/Frameworks. Однако, когда Вы выбираете одну из этих платформ, Открытой диалоговой информации о дисплеях о платформе и не списке подкаталогов.

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