1

我正在尝试将SKTUtils(一组 swift 文件)导入到 Objective-C 项目中。据我所知,这样做就足够了:

#import "ProjectName-Swift.h"

但问题是SKTUtils不是一个项目,而是一个包含一组 swift 类的目录。我尝试以这种方式导入文件:

#import "Vector3-Swift.h"
#import "CGFloat+Extensions-Swift.h"
.... etcetera ....

但没有成功。我还将项目构建设置中的定义模块选项设置为是,但仍然无事可做。

4

1 回答 1

-1

我刚刚尝试在空白的 Objective-C Xcode 项目中导入 SKTUtils。

看起来您缺少正确桥接要求的以下部分:

您需要导入 ProjectName-Swift.h。请注意,它是项目名称 - 其他答案错误地使用了类名。

这个单独的文件是一个自动生成的头文件,它为项目中的所有 Swift 类定义了 Objective-C 接口,这些类要么被注解为 @objc,要么继承自 NSObject。

取自How to import Swift code to Objective-C

例如,在我的测试项目中,我Project-Swift.h确实包含导入 SKTUtils 的 SKAction 扩展,因为它们是基于 Objective-C 的 SpriteKit 类,但其他一些东西不是 Objective-C 友好的,这就是为什么你无法访问它,因为它只是没有在-Swift.h文件中生成.

另一个例子是我开始SKTAudio在我的 Objective-C 代码中看到类,如果我把它作为一个子类NSObject

 @objc public class SKTAudio: NSObject {
于 2016-04-05T22:00:10.367 回答