Swift错误:“无法找到’SKScene’的接口声明,超类”
免责声明:我在SO上阅读了类似的问题,找不到我的问题的解决方案。
我想将一个SKScene的子类添加到以前没有使用过SpriteKit的项目中。
该项目是ObjC和Swift的混合体。 子类是用Swift编写的。
我做了什么:
- 通过转到项目 – >构建阶段 – >链接二进制文件库添加SpriteKit.Framework。
- 我创建了一个快速类,并inheritance自SKScene。
这是新课程:
import SpriteKit class SnowScene: SKScene { }
请注意,该类不是代码中任何其他位置的引用。
当我编译我的应用程序时,我在标题中得到错误。 错误发生在我的-Swift.h文件中,该文件自动导出新类(我不知道为什么)。
SWIFT_CLASS("_TtC11MyCoolApp9SnowScene") @interface SnowScene : SKScene @end
有谁知道我做错了什么以及如何规避这个问题?
我假设您在源文件中import SpriteKit
,否则您将在Swift编译阶段遇到错误。
这听起来像Swift中的一个错误,它没有正确检测到您正在使用SpriteKit。 通常,在第88行的导入部分中检测并插入这些依赖项并将其插入-Swift.h
的顶部:
#if defined(__has_feature) && __has_feature(modules) @import Foundation; @import UIKit; @import ObjectiveC; ... #endif
如果SpriteKit不在该列表中,那么您正在查看编译器错误,并且应该向Apple提交雷达。
如果您有一个桥接标题,您会注意到这些导入正下方是:
#import "/Users/.../...-Bridging-Header.h"
如果没有,你应该添加一个。 我相信添加一个Objective-C文件将触发Xcode为您完成工作。
在桥接头中包含#import
行将确保在声明类之前导入SpriteKit。