在目标 c 父类中访问 swift 类



我创建了一个混合应用程序,它同时具有Objective-c和Swift类。

我有一个主视图控制器(父级(,所有其他视图控制器都是从它继承的(都是用 Objective-c 和 Swift 编写的(。

现在我面临的问题是我想在我的 MainViewController 中访问一个 swift 类,但是当我在MainViewController.h中添加#import "MyProjectName-Swift.h"时,我遇到了大量错误。

原因是因为我的 swift 视图控制器也是从MainViewController继承而来的,当我将#import "MyProjectName-Swift.h"添加到MainViewController.h时,所有 swift 类都感到困惑。

我希望你理解我的问题。场景有点复杂,如果我没有更好地解释它,很抱歉。

另外,有没有办法在 objective-c 中只导入一个 swift 类而不是#import "MyProjectName-Swift.h"这样做?

任何形式的帮助将不胜感激。

您只能在 .m 文件中导入 "ProductName-Swift.h"。

为了避免循环引用,不要将 Swift 导入到 Objective-C 头文件中。相反,你可以转发声明一个 Swift 类,以便在 Objective-C 标头中使用它。请注意,您不能在 Objective-C 中对 Swift 类进行子类化。

没有办法将单个 Swift 类导入到 ObjC 文件。ProductName-Swift.h是一个自动生成的标头,它为项目中的所有 Swift 类定义了 Objective-C 接口,这些类要么用@objc注释,要么继承自NSObject

最新更新