Программируя на Objective-C, вы постепенно разработаете для своих программ собственный набор макросов. Чтобы не вводить их в каждую новую программу, вы можете собрать все определения в один файл и включать свои макросы в программу с помощью оператора #import.

Эти файлы обычно имеют расширение имени .h и называются заголовочными (header) или включаемыми(include) файлами.

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

Мы ввели эти определения в файл с именем metric.h. Чтобы использовать определения из файла metric.h, в программе достаточно ввести следующую директиву препроцессора:

Этот оператор должен появиться до ссылки на любые операторы #define, содержащиеся в файле metric.h. Обычно его помещают в начале исходного файла. Препроцессор ищет указанный файл в системе и копирует содержимое этого файла в то место программы, где находится оператор #import.

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

Кавычки, в которые заключено имя файла, показывают препроцессору, что файл нужно искать в одном или нескольких файловых каталогах(папках). Обычно поиск начинается с каталога, содержащего исходный файл, но в Xcode можно указать конкретные места для поиска, изменив настройки проекта(Project Settings).

Если заключить имя файла в угловые скобки(< и >):

то препроцессор будет искать include-файл только в специальном <системном> каталоге(или каталогах) header-файлов, но в текущем каталоге поиск выполняться не будет.

И в этом случае при работе в Xcode можно изменить каталоги, выбрав в меню Project -> Edit Project Settings(Изменить настройки проекта).

Покажем на примере конкретной программы, как работают include-файлы.
Введем шесть приведенных выше операторов #define в файл с именем metric.h. Затем введем и запустим программу 1.1.

Программа 1.1:

Вывод программы 1.1:

В программе 1.1 используется только одно определенное значение (QUARTS_PER_LITER) из include-файла metric.h определения доступны в любой программе, где применяется соответствующий оператор #import.

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

Кроме того, ошибки в include-файле достаточно исправить только в одном месте, не изменяя все программы, использующие это значение. Любую программу, в которой используется неверное значение, достаточно перекомпилировать, не редактируя.

Другие системные include-файлы содержат объявления для различных функций, хранящихся в базовой системной библиотеке C. Например, файл limits.h содержит системно-зависимые значения, которые задают размеры символьных и целых типов данных.

Максимальный размер типа int определяется внутри этого файла именем INT_MAX, максимальный размер unsigned long int определяется с помощью ULING_MAX и так далее.

Файл float.h задает информацию о типах данных с плавающей точкой: FLT_MAX указывает максимальное число с плавающей точкой, а FLT_DIG — число десятичных цифр для точности типа float.

Файл string.h содержит объявления для библиотечных процедур копирования, сравнения и конкатенации, которые выполняют операции с символьными строками. Если вы работаете исключительно со строчными классами Foundation, то эти процедуры вам не потребуются.