2016-05-08 7 views
1

So habe ich eine Objective-C Codebase, der ich Swift-Dateien hinzufügen möchte. Ich habe meine Bridging-Header erstellt, die meist funktioniert funktioniert aber Probleme beim Importieren bestimmter Klassen. Ich hatte Erfolg mit Klassen aus meinem Projekt-Bridging-Header.h in meinen Swift-Dateien und hatte Erfolg, meine Swift-Klassen zu verwenden, indem ich Project-Swift.h in meine Obj-c-Klassen importierte. Das Importieren bestimmter Klassen führt jedoch dazu, dass Dateien nicht gefunden werden. Diese Klassen, die Probleme verursachen, sind nur Objektklassen, die ich erstellt habe.Swift/Obj-C Bridging-Header nicht gefunden/konnte nicht importiert werden

Die Fehler, die ich erhalte, sind: 'Project-Swift.h' Datei nicht gefunden, und konnte Bridging-Header 'Pfad/zu/Header' nicht importieren.

Ich habe vorher gesehen, diese Header funktionieren und haben erfolgreich Swift-Code in objective c und umgekehrt erfolgreich. Gerade wenn ich bestimmte objective-c-Klassen in meinen Bridging-Header importiere, klagt es.

Hat jemand dies erfahren oder weiß, was passieren könnte?

+0

Wo befinden sich die Klassen, die nicht gefunden werden, und welche Importanweisungen verwenden Sie? –

+0

Mein Bridging-Header befindet sich unter '$ (SRCROOT)/Projekt/Unterstützende Dateien/Projekt-Bridging-Header.h' und der Swift-Header wird automatisch generiert, also egal wo Xcode packt, denke ich. Ich verwende import-Anweisungen wie '#import" MyClass.h ", die für bestimmte Klassen aber nicht andere – chetem

Antwort

0

Ich war mit einem ähnlichen Problem konfrontiert und es stellte sich heraus, dass ich eine krümelige Referenz hatte, wo meine Swift-Klasse meine OjbC-Klasse verwendete, die wiederum Swift-Klasse verwendete.

ich gelöst es durch froward Erklärung in ObjC Headers und Importieren von Projekt Swift.h in .m

0

Ich nehme an, Sie dieses Handbuch ausgecheckt hat, Using Swift with Cocoa and Objective-C (Swift 2.2), sonst hat man zunächst einen Blick nehmen mag, um zu sehen ob die Richtlinien für Ihre Situation hilfreich sind. Vielleicht möchten Sie besonders für einige spezielle Fälle wie Referencing a Swift Class or Protocol in an Objective-C Header überprüfen.

Wenn das nicht funktioniert, überprüfen Sie, ob diese Klassen für die richtigen Ziele festgelegt sind. Und säubere und baue dein Projekt auf.

+0

Dank für Ihre Antwort funktioniert. Es war hilfreich, obwohl ich die Antwort von @ juhan_h akzeptiert habe, da er spezifischer auf meine Frage einging. – chetem

Verwandte Themen