SKNode!不能转换为" SKNode"

时间:2014-07-04 00:16:07

标签: ios swift sprite-kit sknode

我遇到了这个问题并且无法解决它,我真的不了解有关展开变量的文档

var ladybug: SKNode = SKNode.childNodeWithName("ladybug")

错误:(字符串!) - > SKNode!不能转换为“SKNode”

感谢

3 个答案:

答案 0 :(得分:3)

childNodeWithName不是类方法。您可以在实例上调用它,而不是SKNode类本身。

如果您在SKScene子类中编写此代码,则要调用此方法的实例可能是self

答案 1 :(得分:2)

该方法运行正常:

var sprite = SKNode()
var ladybug: SKNode! = sprite.childNodeWithName("ladybug")

但是你需要在SKNode的实例上调用该方法,而不是SKNode本身。

答案 2 :(得分:1)

childNodeWithName返回一个可选的SKNode!。使用类型推断并记住,您必须从其父节点(通常是self,SKScene)中检索节点

let ladybug = self.childNodeWithName("ladybug")

这就是创建精灵时的情况

let ladybug = SKSpriteNode(ImageNamed:"ladybug.png")
labybug.name = "ladybug"
self.addChild(ladybug)

尝试使用let而不是var作为对象。您可以毫无问题地修改其属性,但最好使用常量。