objective-c - 在Objective-C .h文件中看不到Swift类

时间:2015-01-30 21:13:50

标签: objective-c xcode cocoa-touch swift

我试图在Objective-C文件中使用Swift类。 我在"moduleName-Swift.h"文件中添加了SuperViewController.m文件,但当我尝试在SuperViewController.h中使用Swift-class作为方法参数声明公共方法时,我显然会收到错误:{{ 1}}

如果我只能在"Expected a type"个文件中包含swift-class,如何在头文件中使用projectModule-Swift.h

5 个答案:

答案 0 :(得分:16)

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

@objc myclassname { ... }

同时添加

@class myclassname;

在您要访问swift类的 obj-c头文件

答案 1 :(得分:2)

我遇到了同样的问题。在obj-c .h文件中添加@class MyClassName创建了“用于类消息的接收者'MyClassName'是一个前向声明”错误,所以我删除了它并且只在swift类名之前添加了“@objc”,但我也有确保swift类是NSObject的子类。

@objc class MySwiftClass:NSObject { ... }

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我创建了一个没有子类的类,添加了@objc和@objcmembers无效。 更改之后,:NSObject整个类对目标C都是可见的

答案 4 :(得分:0)

我不得不使用:

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