Импорт структуры Objective-c в проект Swift framework
Я создаю структуру, в которой мне нужно импортировать некоторые рамки objective-c, пока мне нужно импортировать "Beaconstac.framework", но поскольку мы не можем добавить заголовок моста в проект SWIFT framework, поэтому мой вопрос заключается в том, как я могу использовать эту структуру в своем проекте, это не доступно напрямую в моем проекте, я попытался
импорт Beaconstac
но его ошибка "Нет такого модуля"
есть ли альтернатива для этого?
3 ответов
вам нужно импортировать структуру Beaconstac в заголовок зонтика. То есть, если вы обычно используете, например, #import <Beaconstac/Beaconstac.h>
в заголовке моста Obj-C для структуры вам нужно поместить это в заголовок зонтика.
см. эту главу в документации Apple для получения дополнительной информации:
шаги для включения существующей структуры Obj C в проект SWIFT framework
скажем, мы создаем "SwiftProj".рамочный "проект в swift, который внутренне должен использовать objc Objective C".рамки"
- поместите ObjC.framework в папке Framework, ссылка на проект Swift framework через связанные фреймворки и библиотеки и создание модуля.файл modulemap на том же уровне.
-
In модуль.modulemap
module ObjC{ header "ObjC.framework/Headers/ClassA.h" export * }
создать файл xcconfig (File->New->iOS->Other->файл настроек конфигурации)
в файле xcconfig
SWIFT_INCLUDE_PATHS = $(SRCROOT)/ MODULEMAP_PRIVATE_FILE = $(SRCROOT)/module.modulemap
теперь вы можете получить доступ к ObjC.Класс В SwiftProj.рамки
создайте файл с именем module.modulemap
и включает следующее содержание:
module ObjCFrameworkName {
header "ObjCFrameworkName.framework/Headers/ObjCFrameworkNameUmbrellaHeader.h"
export *
}
имейте в виду, что вам нужно иметь правильный путь к зонтичному заголовку вашей структуры Obj-C, который может немного отличаться от того, что указано в приведенном выше примере.
Если вы все еще застряли, я настоятельно рекомендую взглянуть на этот проект.