Swift & Objective-C-Projekt - generiert-Swift.h Fehler - Kann Interface-Deklaration für UIViewController nicht finden

9

Ich habe ein Projekt, das den Swift-generierten Bridging-Header verwendet und das Projekt korrekt eingerichtet hat (keine Leerzeichen in Names, Module verwenden, Swift-Klassen in meiner .mm-Datei vordefinieren, abgeleitete Daten löschen, eine saubere Neuerstellung durchführen) etc...). Der Bridging-Header wird ordnungsgemäß generiert, aber die automatisch generierte -Swift.h-Datei enthält Fehler. Was noch schlimmer ist, sind diese Fehler auf den generierten (in Projekt erstellen - Swift) Versionen von AppDelegate und ViewController, die normalerweise gut kompilieren würden. Die Fehler in der -Swift.h sind:

  • @interface AppDelegate : UIResponder <UIApplicationDelegate>
    & gt; & gt; Interface-Deklaration für 'UIResponder', Superklasse nicht gefunden von 'AppDelegate'
    & gt; & gt; Protokolldeklaration für 'UIApplicationDelegate' nicht gefunden
  • @interface ViewController : UIViewController
    & gt; & gt; Interface-Deklaration für 'UIViewController', Oberklasse, kann nicht gefunden werden von 'ViewController'

Ich habe Stack Overflow und das Internet durchsucht und kann keine Antwort finden, die dieses spezielle Problem angeht. Hat jemand anderes das? Oder gibt es eine Möglichkeit, meine AppDelegate- und ViewController-Klassen so zu markieren, dass Xcode nicht Objective-C-Stubs für diese Swift-Klassen erstellt und erstellt, da ich sie nicht wirklich brauche?

    
Richard West 26.03.2015, 18:16
quelle

3 Antworten

5

Ich hatte das gleiche Problem und entdeckte das ..

-Swift.h funktioniert nur am besten mit Objective-C, nicht mit Objective-C ++ (.mm)

Also verwende ich die Objective-C-Klasse, um eine Verbindung mit der Swift-Klasse herzustellen. Außerdem können Sie immer Ihre Objective-C ++ - Klasse in Ihrer Objective-C-Klasse laden.

    
Paul Sweeney 02.06.2015 06:59
quelle
5

Fügen Sie einfach

hinzu %Vor%

vor

%Vor%

in .mm-Datei. für mich hilft es.

    
Timofey Konshin 15.03.2017 10:43
quelle
1

Versuchen Sie, UIKit / UIKit.h in die Überbrückungs-Headerdatei zu importieren.

    
Thao Hoang 02.12.2016 12:01
quelle