objective-c - 如何在 Objective-C 中导入 SKTUtils?

标签 objective-c swift bridging

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

#import "ProjectName-Swift.h"

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

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

但没有成功。我还将项目build设置中的 define modules 选项设置为 yes 但仍然无事可做。

最佳答案

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

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

You need to import ProjectName-Swift.h. Note that it's the project name - the other answers make the mistake of using the class name.

This single file is an autogenerated header that defines Objective-C interfaces for all Swift classes in your project that are either annotated @objc or inherit from NSObject.

取自How to import Swift code to Objective-C .

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

另一个例子是,如果我将它设为 NSObject 的子类,我就会在我的 Objective-C 代码中看到 SKTAudio 类:

 @objc public class SKTAudio: NSObject {

关于objective-c - 如何在 Objective-C 中导入 SKTUtils?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36437480/

相关文章:

objective-c - Swift 无法将 NSNumber 桥接到 Float

ios - 如何在 react 中使用 RCTConvert

objective-c - NSRuleEditor 的指南或示例?

ios - 调用 awakeFromNib 时,UserDefaults 返回 0 个元素

swift - 如何定义对类下的所有测试都不会改变的全局最终变量?

swift - 如何在 objective-c 中使用返回值的 swift 函数?

ios - 使用 UIKit Dynamics 动画自动布局支持 View

objective-c - retainCount 增加或减少的条件

ios - 为什么 breaking-retain-cycle 不会像这样陷入无限循环?

ios - Firebase iOS : Second tap is working properly in login page