Использование swift framework в objc
Я только что создал фреймворк в swift, и он отлично работает в проекте swift, но в цели c я получаю такие ошибки, как Undefined symbols for architecture armv7:
, Я только что проверил доступные архитектуры, используя lipo -info
, это показывает и симулятор и архитектуру устройства. Также я ссылался на эту ссылку, но бесполезно. Прикрепленное изображение тоже. Я буду признателен за любую помощь, спасибо.
2 ответа
Ниже приведен список дел в вашей платформе.
Использование Swift классов в классах Objective C
- Используйте Open Keyword перед именем класса в Swift
- Используйте @objc Keyword перед Open Keyword класса Swift
- Импортируйте все заголовки целевых классов c в файл Umbrella YourProject.h, который использует Swift Classes.
- Используйте #import в Objective c
Я следовал подходу Apple Mix and Match. Надеюсь, это поможет. Спасибо
Чтобы получить доступ к классу swift в objc, который не унаследован от NSObject, вам необходимо:
@objc публичный класс yourUtils
Класс или протокол Swift должны быть помечены атрибутом @objc, чтобы они были доступны и могли использоваться в Objective-C. Этот атрибут сообщает компилятору, что этот фрагмент кода Swift доступен из Objective-C. Если ваш класс Swift является потомком класса Objective-C, компилятор автоматически добавит для вас атрибут @objc.