无法将.sks文件中的SKNode强制转换为自定义类

时间:2016-06-09 17:23:56

标签: swift sprite-kit

如何将sks文件SKNode转换为该节点的子类?遇到与here相同的问题,它表示在sks编辑器中设置自定义类和模块,但该答案不起作用!

我已经在SpriteKit场景编辑器中的空SKNode下构建了一个SKSpriteNodes程序集,使用空节点作为构成船舶的部件的根。根SKNode.name设置为" ship"并且自定义类字段设置为" BasicShip"这是我想要演绎的课程。模块设置为项目名称(在构建设置中确认为模块名称。)

我正在使用自定义SKNode子类为船舶添加动态,例如。推力函数等。

通过childNodeWithName()检索节点会返回Optional(SKNode),而不是我的自定义类。将返回的节点转换为我的自定义类进行编译,但在运行时崩溃。

检查didMoveToView()中的场景节点显示" ship"节点作为通用SKNode也是如此,因此自定义类不会接收sks文件,也不能在运行时转换为一个。

Could not cast value of type 'SKNode' (0x1001dcc60) to 'Lander001.BasicShip' (0x10000f2a0).

停止并显示以下消息:.md-sidenav {position: static;} 我的自定义类继承自SKNode,因此转换应该不是问题,对吧?

(xcode 7.2.1,osX 10.10 < - 它可能是osX vs iOS的东西吗?我想最终在两者上运行。)

1 个答案:

答案 0 :(得分:0)

我相信在world内有另一个名为ship的节点。这就是你要检索的那个。检查您的项目,确保您没有向世界添加名为SKNode的其他ship