objective-c - Swift-Klassen sind in der Objective-C .h-Datei nicht sichtbar

8

Ich versuche Swift-Klasse in meiner Objective-C-Datei zu verwenden. Ich habe "moduleName-Swift.h" -Datei in meine SuperViewController.m -Datei eingefügt, aber wenn ich versuche, eine öffentliche Methode in SuperViewController.h mit Swift-class als Methodenparameter zu deklarieren, bekomme ich offensichtlich einen Fehler: "Expected a type"

Wie kann ich swift-class in einer Header-Datei verwenden, wenn ich nur projectModule-Swift.h in .m files ?? aufnehmen kann

    
Oleg 30.01.2015, 21:13
quelle

3 Antworten

13

Stellen Sie sicher, dass @objc vor dem swift Klassennamen steht.

%Vor%

Fügen Sie auch

hinzu %Vor%

in Ihrer obj-c-Headerdatei , in der Sie auf die swift-Klasse zugreifen möchten

    
Eyeball 30.01.2015, 21:41
quelle
1

Ich hatte das gleiche Problem. Das Hinzufügen von @class MyClassName in obj-c .h Datei erstellt den "Empfänger 'MyClassName' für die Nachricht der Klasse ist eine Vorwärtsdeklaration" Fehler, so dass ich das gelöscht und NUR die "@objc" vor dem Swift-Klassennamen hinzugefügt, ABER ich hatte auch um sicherzustellen, dass die Swift-Klasse eine Unterklasse von NSObject ist.

%Vor%

OHNE @class MyClassName in obj-c .h-Datei!

    
Sloba 08.07.2016 01:19
quelle
0

Ich musste verwenden:

@obj public class MySwiftClass: NSObject { ... }

    
Matt H 21.12.2017 21:05
quelle