斯威夫特错误:“找不到接口声明‘SKScene’的父”
声明:我通过在这样类似的问题看,无法找到一个解决我的问题。斯威夫特错误:“找不到接口声明‘SKScene’的父”
我想SKScene的子类添加到以前没有使用SpriteKit的项目。
该项目是ObjC和Swift的混合。子类是用Swift编写的。
我做了什么:
- 新增SpriteKit.Framework通过转到项目 - >构建阶段 - > 链接二进制与图书馆。
- 我创建了一个swift类,并且它从SKScene继承了 。
这是新类:
import SpriteKit
class SnowScene: SKScene {
}
注意的是,类不是在代码中其他地方引用。
当我编译我的应用程序,我得到了错误的称号。该错误发生在我的-Swift.h文件中,该文件自动导出新类(我不知道为什么)。
SWIFT_CLASS("_TtC11MyCoolApp9SnowScene")
@interface SnowScene : SKScene
@end
有没有人有任何想法我做错了什么,以及如何绕过这个问题?
我假设你在源文件中没有import SpriteKit
或者你会得到的斯威夫特编译阶段的错误。
这听起来像一个雨燕臭虫,它不能正确检测到您使用SpriteKit。通常情况下,检测到这些依赖关系,并在-Swift.h
在进口部分顶部插入,左右线88:
#if defined(__has_feature) && __has_feature(modules)
@import Foundation;
@import UIKit;
@import ObjectiveC;
...
#endif
如果SpriteKit不在列表中,你正在寻找一个编译器错误,并应提交雷达与苹果。
如果你有一个桥接头,你会发现这些进口低于右边是:
#import "/Users/.../...-Bridging-Header.h"
如果没有,你应该添加一个。我相信添加一个Objective-C文件将触发Xcode为您完成工作。
包括你的桥接报行#import <SpriteKit/SpriteKit.h>
将确保SpriteKit被宣告你的课前导入。
将SpriteKit导入添加到桥接头文件确实解决了问题!谢谢! @import SpriteKit在列表中。 –
你忘了输入SpriteKit吗?您自己的模块中的类不需要导入,但框架可以。 – geraldWilliam
我没有忘记 - 抱歉忽略这么明确地表达。添加到原来的问题。 –