objective-c - Swift 类 在 Objective-C .h 文件中不可见

objective-c - Swift classes are not visible in Objective-C .h file

我正在尝试在我的 Objective-C 文件中使用 Swift class。 我在我的 SuperViewController.m 文件中包含了 "moduleName-Swift.h" 文件,但是当我尝试在 SuperViewController.h 中声明一个 public 方法并将 Swift-class 作为方法参数时,我显然得到了一个错误:"Expected a type"

如果我只能在 .m 文件中包含 projectModule-Swift.h,我如何在头文件中使用 swift-class

确保将@objc 放在 swift class 名称之前。

@objc myclassname { ... }

同时添加

@class myclassname;

在你的 obj-c 头文件 中你想要访问 swift class

我遇到了同样的问题。在 obj-c .h 文件中添加 @class MyClassName 会产生 "Receiver 'MyClassName' for class message is a forward declaration" 错误,所以我删除了它并且只在 swift class 名称之前添加了“@objc”,但是我还必须确保 swift class 是 NSObject.

的子class
@objc class MySwiftClass:NSObject { ... }

在 obj-c .h 文件中没有 @class MyClassName!

我必须使用:

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

记得在你的源文件中导入项目生成的swift头文件,例如#import <MyProjectName-Swift.h>

我创建了一个没有子class的class,添加@objc 和@objcmembers 没有用。 在我更改 :NSObject 之后,整个 class 变为对 objective-C

可见