Я строю фреймворк Swift, который зависит от другого фреймворка Objective C. Когда я открываю автоматически сгенерированный файл ProductName-Swift.h внутри заголовков моего фреймворка, я вижу те классы, которые я не хотел бы выставлять (классы с внутренним модификатором). Согласно Apple Docs это законно:
По умолчанию сгенерированный заголовок содержит интерфейсы для Swift
объявления, помеченные публичным или открытым модификатором. Если ваше приложение
target имеет заголовок моста Objective C, сгенерированный заголовок также
включает интерфейсы, помеченные внутренним модификатором.
Но почему это происходит? Может кто-нибудь объяснить мне, пожалуйста? Согласно моей логике, если я решу сделать какой-то код внутренним, его не следует использовать за пределами моей среды, и он не должен отображаться в заголовке.
В любом случае, я могу написать bash-скрипт, который удалит внутренние классы и функции из ProductName-Swift.h после сборки, но я не уверен, нормально ли это делать. Будут ли у пользователя какие-либо проблемы при использовании моей инфраструктуры Swift с «фиксированным» ProductName-Swift.h внутри его проекта Objective C, например?