Класс Swift в проекте ObjC: Получатель «MySwiftClass» для сообщения класса является предварительным объявлением

Потратив несколько часов на успешную интеграцию файлов swift к моему проекту iOS на основе Objective-C, я столкнулся со следующей проблемой:

  1. В одном из моих заголовков класса Objective-C (скажем, MyObjCClass.h) я делаю предварительное объявление для MySwiftClass.
  2. В соответствующем файле .m я определяю экземпляр MySwiftClass _swiftClassInstance.
  3. В методе инициализации MyObjCClass я пытаюсь создать его следующим образом:

_swiftClassInstance = [[MySwiftClass alloc] init];

При компиляции кода я получаю 2 ошибки:

  • Получатель «MySwiftClass» для сообщения класса является предварительным объявлением
  • Тип получателя 'MySwiftClass' для экземпляра сообщения является предварительным объявлением

Я уже сделал следующее:

  1. Импортировано MyProject-Swift.h в файл MyObjCClass.m.
  2. Пометил класс swift с помощью @objc и open

Итак, в чем может быть причина проблемы?


person Harish J    schedule 29.12.2017    source источник
comment
Как на самом деле называется ваш класс Swift? Возможно, вам придется дать ему видимое/подходящее имя Objective-C, используя @objc(MySwiftClass)   -  person Gereon    schedule 29.12.2017