2014-06-09 14 views
7

Ich habe ein benutzerdefiniertes Framework mit einer Reihe von Objective-C-Klassen. Innerhalb des Frameworks möchte ich mit Swift weitere Klassen hinzufügen. Wenn jedoch versucht wird, die Swift-Klassen dem Objective-C-Code unter Verwendung von MyProduct-Swift.h zur Verfügung zu stellen, wird es als "MyProduct-Swift.h Datei nicht gefunden" angezeigt.Importieren von Swift-Klassen innerhalb eines Objective-C-Frameworks

Ich habe dies in einer einzigen Ansicht Vorlage versucht und es funktioniert gut. Ist es nicht möglich Swift innerhalb eines Frameworks zu importieren?

Ich habe auch überprüft, dass ich die Defines Modul Einstellung und den Modulnamen eingestellt habe. Ich habe es mit und ohne diese Einstellungen versucht.

+0

Ist das Ihr einziger Compilerfehler? Der Header wird nicht generiert, wenn der Swift-Code nicht kompiliert wird. –

+0

@SteveWaddicor Alles, was ich im Swift-Code mache, ist das Deklarieren einer benutzerdefinierten Klasse. Und ya, das ist mein einziger Compilerfehler. – Oxcug

+0

Ich bekomme den gleichen Fehler .. = ( – Irina

Antwort

8

Ich habe einige zusätzliche Schritte gefunden, damit alles funktioniert. Neben der Einrichtung ‚Define Module‘ auf YES und ‚Produktmodulname‘ (standardmäßig in der Regel sind diese richtig eingestellt, wenn Sie in Xcode 6 neue Touch-Framework erstellen) müssen Sie auch:

  1. Add ‚public‘ Schlüsselwort alle Swift-Klassen, die Sie in Objective C benötigen
  2. Sie müssen das Schlüsselwort 'public' sogar zu allen Methoden und Eigenschaften innerhalb der Klasse hinzufügen, auf die Sie zugreifen möchten von Objective C
  3. Sie müssen Swift-Header in einem 'Long importieren wie folgt:

#import <ProjectName/ModuleName-Swift.h>

+0

Danke! Es hat endlich auch für mich funktioniert. – AXE

4

Ok, ich habe gefunden, was das Problem ist.

Stellen Sie sicher, dass Sie unter Build-Einstellungen -> Verpackung Modul definieren auf YES gesetzt haben und der Produktmodulname ebenfalls gesetzt ist. In der Storyboard-Datei sollte der Name für das Modul identisch sein und den Angaben in den Build-Einstellungen entsprechen. Dann schreiben Sie in Ihre Obj-C-Datei schreiben "-Swift.h"

Das war der Trick für mich.

Verwandte Themen