Подтвердить что ты не робот

Импорт структуры Objective-c в проект фреймворка Swift

Я создаю фреймворк, в котором мне нужно импортировать некоторые фреймворки objective-c, теперь мне нужно импортировать "Beaconstac.framework", но поскольку мы не можем добавить заголовок моста в проекте быстрой разработки, так что мой вопрос в том, как можно Я использую эту структуру в своем проекте, это не доступно прямо в моем проекте, который я пробовал

import Beaconstac

но его сообщение об ошибке "Нет такого модуля"

Есть ли альтернатива для этого?

4b9b3361

Ответ 1

Вам нужно импортировать фреймворк Beaconstac в свой заголовок зонтика. То есть, если вы обычно использовали, например, #import <Beaconstac/Beaconstac.h> в заголовке моста Obj-C, для фреймворка вам нужно поместить его в заголовок зонтика.

Дополнительную информацию см. в этой главе в документации Apple:

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID130

Ответ 2

Шаги по включению существующей среды Obj C в проект быстрой платформы

Скажем, мы создаем проект SwiftProj.framework в swift, который внутренне должен использовать Objective C "ObjC.framework"

  1. Поместите ObjC.framework в папку Frameworks, создайте проект Link to Swift через Linked Frameworks и библиотеки и создайте файл module.modulemap на том же уровне.
  2. В module.modulemap
module ObjC{
    header "ObjC.framework/Headers/ClassA.h"
    export *
}
  1. Создайте файл xcconfig (File-> Создать → iOS-> Другое-> Файл настроек конфигурации)

  2. В файле xcconfig

SWIFT_INCLUDE_PATHS = $(SRCROOT)/
MODULEMAP_PRIVATE_FILE = $(SRCROOT)/module.modulemap

Теперь вы можете получить доступ к ObjC.ClassA в SwiftProj.framework

Ответ 3

Создайте файл с именем module.modulemap и включите следующее содержимое:

module ObjCFrameworkName {
    header "ObjCFrameworkName.framework/Headers/ObjCFrameworkNameUmbrellaHeader.h"
    export *
}

Помните, что вам нужен правильный путь к заголовку зонда Obj-C, который может немного отличаться от того, что указано в приведенном выше примере.

Если вы все еще застряли, я настоятельно рекомендую взглянуть на этот проект.