Подтвердить что ты не робот

Xcode: Копировать заголовки: Public или Private vs. Project?

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

PUBLIC: Если вы ожидаете, что пользователи вашей библиотеки будут ссылаться только на ваш объект (и НЕ иметь ваш оригинальный проект), убедитесь, что заголовки отмечены как "общедоступные" (только для заголовков, нужно будет сослаться).

Ответ 3

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

Internal - разрешает доступ к коду в том же модуле, но не к любому другому модулю. Это уровень доступа Swift по умолчанию.

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

enter image description here

Эти заголовки немного вводят в заблуждение - все заголовки будут фактически видны вашим клиентам и доступны для поиска в поисковике, но для их импорта в зонтичный заголовок необходимо явно сделать общедоступными заголовки. [About Target Membership]

Источник здесь и здесь