Swift错误致命错误:展开一个可选值(lldb)时意外发现nil

时间:2019-06-25 20:00:33

标签: swift sprite-kit

我正在编写脚本,其中将gamesene.swift中的变量附加到gamecene.sks中的子画面。我以前已经做过,但是现在我收到了一个我不明白的错误。

我不知道在这里做什么,所以请发送帮助。

var p      = SKSpriteNode() // this is the declaration

下面在didMoveTo()

    p.name = "p"
           p = self.childNode(withName: "p") as! SKSpriteNode

错误是:

Fatal error: Unexpectedly found nil while unwrapping an Optional value
2019-06-25 12:50:45.259190-0700 Select[25918:1085668] Fatal error: Unexpectedly found nil while unwrapping an Optional value
(lldb)

*****我发现该脚本中没有错误,我的GameViewController中有奇怪的声明

1 个答案:

答案 0 :(得分:0)

您的代码崩溃了,因为场景中没有名称为p且是子画面节点的子节点。没有更多信息,就无法知道为什么场景中没有子节点p

如果要将代码中的Sprite值设置为SKS文件中的Sprite,请确保提供给self.childName的名称与SKS文件中Sprite的名称匹配。

p = self.childNode(withName: "SpriteNameInSKSFile") as! SKSpriteNode

如果要在代码中构建精灵,请调用addChild函数以将精灵添加为场景的子代。

self.addChild(p)

通过这种方式,您应该使用比p更具描述性的变量名。