致命错误:在创建SKSpriteNode时解开Optional值时意外发现nil

时间:2019-05-20 16:47:05

标签: swift sprite-kit

我想在玩家触摸屏幕时玩游戏,屏幕上显示宝石,但是我遇到错误致命错误:意外发现在展开Optional值时为nil。如何解决?

我这样做:

$name = ModelA::find(1)->modelB->modelC->name;
//                                      ^^^^^^ modelC attribute

该错误告诉我:线程1:致命错误:在第三行解开一个Optional值时意外发现nil

2 个答案:

答案 0 :(得分:0)

从外观上看,没有名为CoolGem的文件。由于您使用了强制展开(!),因此应用崩溃,因为您的gem变量为nil。

答案 1 :(得分:0)

图像已添加到您的项目中吗?它在资产目录中吗?

如果是这样,尝试像这样访问它

gem = SKSpriteNode(imageNamed: "Gem")

或者您可以确保它不会为空

if let gem = SKSpriteNode(imageNamed: "Gem") as? SKSpriteNode {
    self.gem = gem
    gem.position = CGPoint(x: 0, y: 0)
    addChild(gem)
    gem.run(SKAction.move(to: CGPoint(x: Double.random(in: -100...100), y: Double.random(in: -100...100)), duration: 1))
}