Создание структуры Swift со ссылками на код Objective-C

Я работаю над проектом iOS, написанным в Swift, и я хотел бы взять некоторые классы из обычного проекта "приложения" и вместо этого объединить его в повторно используемую среду Swift (и, возможно, сделать его общедоступным в Github и через Cocoapods).

Я сталкиваюсь с проблемами, потому что в структурах, по-видимому, не могут быть Objective-C мосты заголовков, но для компиляции моего кода фрейма мне нужно ссылаться на несколько классов Objective-C (в данном случае: SDK Google Maps iOS).

Я также добавил GoogleMaps.framework в качестве связанной библиотеки в моем проекте framework, но потом, как я могу "импортировать" его из кода Swift?

Возможно ли это с текущими инструментами и версией Swift, и как мне следует продолжить?

Спасибо.

Ответы

Ответ 1

Это было не так сложно, на самом деле... Я просто делал что-то неправильно.

Во-первых, в этом параметре требуются не. Для этого SDK Google Maps iOS предоставляется как обычный файл .framework, поэтому язык разработки не влияет на то, как его можно импортировать в Swift, Apple четко упоминает его в документации: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html, "Импорт внешних фреймворков".

Это так же просто, как добавление рамки в раздел "Связывание с библиотеками" в настройках проекта. Не забудьте также добавить зависимости библиотек и фреймворков (в случае с GoogleMaps.framework их довольно много).

Затем в коде Swift классы framework должны быть доступны просто:

import GoogleMaps

Отсутствует заголовок, не имеющий отношения к "немодульному заголовку и т.д.". ошибки.