gpt4 book ai didi

ios - Swift 错误 : "Cannot find interface declaration for ' SKScene', 的父类(super class)”

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:24 27 4
gpt4 key购买 nike

免责声明:我通读了关于 SO 的类似问题,找不到解决我的问题的方法。

我想将 SKScene 的子类添加到以前未使用 SpriteKit 的项目中。

该项目是 ObjC 和 Swift 的混合体。子类是用 Swift 编写的。

我做了什么:

  1. 通过转到项目 -> 构建阶段 -> 添加了 SpriteKit.Framework将二进制文件与库链接。
  2. 我创建了一个 swift 类并拥有它继承自 SKScene。

这是新类:

import SpriteKit

class SnowScene: SKScene {
}

请注意,该类未被代码中的其他任何地方引用。

当我编译我的应用程序时,我在标题中收到错误。错误发生在我的 -Swift.h 文件中,该文件自动导出了新类(我不知道为什么)。

SWIFT_CLASS("_TtC11MyCoolApp9SnowScene")
@interface SnowScene : SKScene
@end

有谁知道我做错了什么以及如何避免这个问题?

最佳答案

我假设你做了 import SpriteKit在您的源文件中,否则您会在 Swift 编译阶段遇到错误。

这听起来像是 Swift 中的一个错误,它没有正确检测到您正在使用 SpriteKit。通常,这些依赖项会被检测并插入到 -Swift.h 的顶部在导入部分,第 88 行附近:

#if defined(__has_feature) && __has_feature(modules)
@import Foundation;
@import UIKit;
@import ObjectiveC;
...
#endif

如果 SpriteKit 不在该列表中,那么您正在寻找一个编译器错误,应该向 Apple 提交雷达。

如果您有一个桥接 header ,您会注意到在这些导入的正下方是:

#import "/Users/.../...-Bridging-Header.h"

如果没有,你应该添加一个。我相信添加单个 Objective-C 文件会触发 Xcode 为您完成工作。

包括行#import <SpriteKit/SpriteKit.h>在您的桥接 header 中将确保在声明您的类之前导入 SpriteKit。

关于ios - Swift 错误 : "Cannot find interface declaration for ' SKScene', 的父类(super class)”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33809938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com