Фреймворк Swift и Objective-c выставляет свои внутренние - программирование
Подтвердить что ты не робот

Фреймворк Swift и Objective-c выставляет свои внутренние

Я пытаюсь интегрировать Swift в существующую среду target-c, которая имеет публичные, приватные и проектные файлы. Для быстрого доступа к файлам проекта я добавил карту модуля, которая определяет новый модуль (например, MyFramework_Internal), включая все заголовки проекта, как описано здесь: http://nsomar.com/project-and-private-headers-in -a-быстроногих и-Objective-C-рамки/

Эта настройка работает, но я с удивлением увидел, что теперь клиент может получить доступ к внутренним классам, импортировав MyFramework_Internal (@import MyFramework_Internal). Есть ли способ скрыть модуль, так как он нужен только самой платформе? Карта модуля выглядит следующим образом:

module MyFramework_Internal {  
   header "Folder1/Baz.h"  
   header "Folder1/Folder2/Bar.h"  
   export *
} 
4b9b3361

Ответ 1

Файл модуля предназначен для Objective-C, а Objective-C не имеет понятия internal. Он знает только public (что объявлено в заголовочных файлах) и private (что объявлено только в файлах реализации).

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