Xcode: Копировать заголовки: публичный против частного против проекта? - PullRequest
67 голосов
/ 16 сентября 2011

Я строю статическую библиотеку Cocoa Touch. Как мне решить, следует ли копировать заголовочный файл как публичный, частный или как проект?

Ответы [ 2 ]

102 голосов
/ 05 ноября 2011

Общедоступный: Интерфейс завершен и предназначен для использования клиентами вашего продукта.Открытый заголовок включен в продукт как читаемый исходный код без ограничений.

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

Проект: Интерфейс предназначен для использования только файлами реализации в текущем проекте.,Заголовок проекта не включен в цель, кроме как в объектном коде.Символы вообще не видны клиентам, только вам.

Источник: Библиотека разработчиков Xcode> Инструменты и языки> Среды разработки> Справка редактора проектов> Настройка видимостиЗаголовочный файл

24 голосов
/ 02 марта 2012

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

ПРОЕКТ: Если вы распространяете свой проект и ожидаете, что пользователи будут включать ваш проект в качестве собственного подпроекта, вы должны убедиться, что ваши заголовки помечены как «проект».Невыполнение этого приведет к таким проблемам: Не указана версия архива Xcode 4

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

ОБЩЕСТВЕННО: Если вы ожидаете, что пользователи вашей библиотеки будут ссылаться только на ваш объект (а НЕ на исходный проект), убедитесь, что ваши заголовки помечены как «публичные» (только для заголовков).они должны будут ссылаться на).

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