Рубріки: Теория

Импорт Objective-C в Swift: краткая, но ясная инструкция

Ігор Грегорченко

В этой короткой заметке обсудим доступ к классам, объектам и другим объявлениями из кода Objective-C в Swift.

Обзор

Вы можете использовать файлы Objective-C и Swift вместе в одном проекте, независимо от того, какой язык использовался в проекте изначально.

Это делает создание приложений и фреймворков на смешанных языках таким же простым делом, как и создание приложений или фреймворков, написанных на одном языке.

Диаграмма, показывающая шаги по импорту деклараций Objective-C в код Swift. Импортируйте заголовки Objective-C в мостовой заголовочный файл Objective-C, чтобы открыть декларации для всех файлов Swift.

Процесс использования деклараций Objective-C из кода Swift в смешанных языках немного отличается в зависимости от того, пишете ли вы приложение или фреймворк. Оба процесса описаны ниже.

Импорт кода внутри приложения

Чтобы импортировать набор файлов Objective-C в код Swift в рамках одной и той же цели сборки приложения, вы полагаетесь на заголовочный файл Objective-C bridging header, чтобы открыть эти файлы для Swift.

Xcode предлагает создать подобный заголовок, когда вы добавляете файл Swift в существующее приложение Objective-C, либо файл Objective-C в существующее приложение Swift.

Скриншот приглашения Xcode для настройки мостового заголовка Objective-C.

Если вы соглашаетесь, Xcode создает файл связующего заголовка вместе с файлом, который вы создавали, и называет его с помощью имени вашего модуля продукта, за которым следует -Bridging-Header.h.

В качестве альтернативы, вы можете создать заголовок самостоятельно, выбрав File > New > File > [операционная система] > Source > Header File.

Отредактируйте связующий заголовок, чтобы открыть код Objective-C для кода Swift:

  • Импортируйте в свой связующий заголовок Objective-C все заголовки Objective-C, которые вы хотите передать в Swift.
  • В Build Settings, в Swift Compiler -> General, убедитесь, что в параметре сборки Objective-C Bridging Header указан путь к файлу связующего заголовка. Путь должен быть относительным к вашему проекту, подобно тому, как в Build Settings указывается путь к Info.plist. В большинстве случаев вам не потребуется изменять этот параметр.

Любые публичные заголовки Objective-C, перечисленные в мостовом заголовке, видны Swift. Декларации Objective-C автоматически доступны из любого файла Swift внутри этой цели сборки, без операторов импорта.

Используйте классы/объекты и другие объявления из вашего пользовательского кода Objective-C с тем же синтаксисом Swift, который вы используете для системных классов.

Импорт кода внутри Framework

Чтобы использовать объявления Objective-C в файлах в той же цели фреймворка, что и ваш Swift-код, настройте зонтичный заголовок следующим образом:

  • В разделе Build Settings, в Packaging, убедитесь, что параметр Defines Module для цели фреймворка установлен на Yes.
  • В зонтичном заголовке импортируйте все заголовки Objective-C, которые вы хотите раскрыть для Swift.

Swift видит каждый заголовок, который вы открыто раскрываете в зонтичном заголовке. Содержимое файлов Objective-C в этом фреймворке автоматически доступно из любого файла Swift внутри этого фреймворка, без каких-либо операторов импорта.

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

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024