Xcode 8 SpriteKit:GameScene.swift 文件未被识别/运行

Posted

技术标签:

【中文标题】Xcode 8 SpriteKit:GameScene.swift 文件未被识别/运行【英文标题】:Xcode 8 SpriteKit: GameScene.swift file not being recognized/ran 【发布时间】:2017-01-15 17:30:56 【问题描述】:

好的,所以我以前遇到过这个问题,并且到处寻找答案。这里有类似的问题,一个就是这个,但没有答案,似乎已被放弃。

问题是我的 GameScene.swift 中的所有代码似乎对我的项目中正在运行的内容没有影响。我在我的 GameScene.sks 文件中使用界面构建器构建的所有内容都按预期显示,但我在 .swift 文件中放入的标签、脉冲或其他对象更改似乎被忽略了。

为了测试这一点,我进入了我的 GameScene.swift 的 didMovetoview 部分并简单地输入了一个:print("hello"),以查看它是否会在控制台中运行以及是否存在其他问题,但它完全忽略了它。我还在 .sks 界面构建器上创建了一个标签,并使用 .swift 文件更改了文本,这也完全没有影响。

我已确保 .swift 文件中的类名“GameScene”也是 .sks 文件中引用的正确自定义类。我已确保 GameViewController 是我的初始视图控制器,并将场景设置为正确的 GameScene.sks。

在做了一些研究之后,我做了一些事情,比如复制 GameScene.swift 和 .sks 文件并删除它们,清理和构建项目,替换文件然后运行它。 (当我遇到完全相同的问题时,这曾经对我有用)我听说删除我的项目的派生数据可以帮助解决一些小问题,所以我去看看它是否有帮助,但它也没有。

我现在不知道该怎么做,我在网上找不到任何专门提供解决方案或一些可能的解决方案来解决这个问题的东西。

提前感谢您提供任何可能的解决方案

【问题讨论】:

你知道我以前在 SpriteKit 中遇到过类似的错误。我不能保证它会有所帮助,但我记得它对我有用。我必须创建一个全新的 GameScene.swift 文件 - 但给它一个全新的名称,如“NewGameScene.swift”,删除旧的,更新“自定义类”下 .sks 文件中的名称,然后制作一定要告诉我的 GameViewController 呈现场景view.presentScene(scene)。太奇怪了,但是当文件被命名为 GameScene.swift 时,我无法让它工作,只是创建一个新名称的新文件对我有用。 您使用哪个 Xcode?在 Xcode 8 中没有删除派生数据的选项(除手动之外),所以您可能正在使用 Xcode 7,对吧?你也试过 Product -> Clean ,如果在模拟器上测试,清除它的内容和设置? 谢谢你们的回复;所以我实际上已经完成了你所说的 Pierce,不幸的是它仍然对我不起作用。我使用的是 Xcode 8,我手动删除了派生数据。我也清理了它并重新启动了模拟器,以及多次的 Xcode 【参考方案1】:

好的!所以我尝试了一些可以为我解决这个问题的方法。

与 Pierce 的回复类似,我所做的不是使用同一个项目,而是用自己替换文件并清理产品,对我有用的只是制作一个全新的项目并使用相同的 GameScene.swift 和 .sks文件。

尽管在解决问题时这两件事似乎没有什么不同,但创建一个新项目并使用相同的文件比使用相同的文件并在我当前的文件上进行更改要好。

我只需要重新替换我所有的资产图像。

【讨论】:

这有点让人担心,这种解决方法有效,但您的主项目中的工作却没有。【参考方案2】:

如果您在现有的 sks 文件旁边为另一种设备类型创建新的 sks,则需要在“自定义类”选项卡下将“GameScene”类添加到新创建的 sks 文件enter image description here

【讨论】:

以上是关于Xcode 8 SpriteKit:GameScene.swift 文件未被识别/运行的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8 SpriteKit:GameScene.swift 文件未被识别/运行

无法使用 Xcode 8 和 Swift 3 在 SpriteKit 中以编程方式触发 segue

无法在 Xcode 6 Playground 中使用 SpriteKit

“纹理图集不支持模板渲染”SpriteKit 和 Xcode

在 Sprite Kit 游戏中重置 SKScene

Xcode SpriteKit:如何在 Xcode 13 中添加 Sprite Atlas