Заголовок моста Swift / Obj-C не найден / не удалось импортировать

Итак, у меня есть кодовая база Objective-C, в которую я пытаюсь добавить файлы Swift. Я создал заголовок моста, который в основном работает, но при импорте определенных классов возникают проблемы. Я успешно использовал классы из моего Project-Bridging-Header.h в моих файлах Swift и успешно использовал мои классы Swift, импортировав Project-Swift.h в мои классы Obj-c. Однако импорт определенных классов приводит к ошибкам "файл не найден". Эти классы, вызывающие проблемы, - это просто классы obj-c, которые я создал.

Я получаю следующие ошибки: файл «Project-Swift.h» не найден и «Не удалось импортировать мостовой заголовок путь / к / заголовку».

Я ранее видел, как эти заголовки работают, и успешно использовал быстрый код в цели c и наоборот. Когда я импортирую определенные классы objective-c в свой заголовок моста, он жалуется.

Кто-нибудь испытал это или знает, что может происходить?


person chetem    schedule 08.05.2016    source источник
comment
Где находятся классы, которых нет, и какие операторы импорта вы используете?   -  person l'L'l    schedule 09.05.2016
comment
Заголовок My Bridging расположен по адресу $(SRCROOT)/Project/Supporting Files/Project-Bridging-Header.h, а заголовок swift создается автоматически, так что я думаю, куда бы его ни поместил Xcode. Я использую операторы импорта, такие как `#import MyClass.h, который работает для определенных классов, но не работает для других   -  person chetem    schedule 09.05.2016


Ответы (2)


Я столкнулся с аналогичной проблемой, и оказалось, что у меня была учебная справка, в которой мой класс Swift использовал мой класс OjbC, который, в свою очередь, использовал класс Swift.

Я решил это, используя объявление froward в заголовке ObjC и импортировав Project-Swift.h в .m

person juhan_h    schedule 08.05.2016

Я предполагаю, что вы ознакомились с этим руководством, Использование Swift с Cocoa и Objective-C (Swift 2.2), иначе вы можете сначала взглянуть, насколько полезны рекомендации в вашей ситуации. Возможно, вы захотите дважды проверить, особенно в некоторых особых случаях, например Ссылка на класс или протокол Swift в заголовке Objective-C.

Если это не сработает, дважды проверьте, установлены ли эти классы для правильных целей. И очистите и перестройте свой проект.

person Stephenye    schedule 08.05.2016
comment
спасибо за Ваш ответ. Это было полезно, хотя я принял ответ @juhan_h, поскольку он более конкретно отвечал на мой вопрос. - person chetem; 09.05.2016