可选类型'SKSpriteNode?'的值不打开;你的意思是用!要么?

时间:2015-11-03 16:44:25

标签: swift sprite-kit

所以我正在尝试创建一个2D SpriteNode,它是静止的(它的徽标),并且不会做任何特别的事情来搞砸它。这是我的代码:

let Logo = SKSpriteNode(fileNamed: "logo.png");
Logo.yScale = 1;
Logo.xScale = 1;
Logo.position = CGPoint(x:CGRectGetMidX(self.frame),y:CGRectGetMidY(self.frame));
self.addChild(Logo)

当我运行应用程序时,它崩溃并给我这个错误: 可选类型'SKSpriteNode?'的值不打开;你的意思是用!还是?

它告诉我添加'!'标识(徽标!),我已经尝试过,它仍然无效。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

SKSpriteNode(fileNamed: "logo.png")调用返回可选(如果你在文件名中拼错,它会给你nil)。

如果您确定该文件存在,则可以使用!

let Logo = SKSpriteNode(imageNamed: "logo.png")!

但更安全的方式是这样做:

if let Logo = SKSpriteNode(imageNamed: "logo.png") {
    Logo.yScale = 1
    ...
}