Как работает соединительный заголовок в XCode?
Мне интересно, как Xcode на самом деле работает с библиотеками C и Swift 4.
Я добавил свою библиотеку C, создав заголовок моста, после чего я мог использовать свои функции C без каких-либо усилий. Свифт построен на языке Си?
2 ответа
В отличие от Objective-C или языков семейства C/C++, Swift не имеет концепции заголовков для открытого интерфейса, а доступность объявляется через модификаторы доступности (private
/internal
/public
/так далее).
Единственным исключением является заголовок моста для приложений и заголовок зонтика для библиотек. Компилятор знает, как искать в этих местах объявления, которые можно импортировать в Swift (не все содержимое C в заголовке может быть доступно для Swift).
Как только он найдет используемые символы, компилятор сделает их доступными для всех файлов Swift и сгенерирует необходимый код вызова.
Когда вы добавляете библиотеку в C в Xcode, вы вводите имя и устанавливаете флажок также создать файл заголовка, Xcode спросит вас о файле заголовка моста Objective-C. Просто создай это. Название этого файла хитрое, потому что он также поддерживает другие языки семейства C, такие как чистый C или C++, Objective-C и C плюс-плюс.
Не совсем Swift построен на языке Си, но Цель. C тех пор ранее Swift Support не было. Файлы.h, которые являются заголовком, который помогает нам соединить библиотеку и использовать ее в нашем проекте, работающем на Swift.
Посмотрите документацию Apple: - https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_objective-c_into_swift