2015-11-03 27 views
1

所以我試圖創建一個2D SpriteNode,它的靜態(它是一個標誌),並沒有做任何特別的事情來搞亂它。這是我的代碼:可選類型'SKSpriteNode?'的值不解開;你的意思是使用!要麼?

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」 值可選類型的不解開;你的意思是使用!要麼 ?

它告訴我添加'!'標誌(標誌!),我試過了,它仍然無法正常工作。

感謝您的幫助!

回答

0

SKSpriteNode(fileNamed: "logo.png")調用返回可選(如果你在文件名中做拼寫錯誤,它會給你零)。

如果確定該文件存在,你可以使用!

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

但更安全的方法是做這樣的:

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

如果讓標誌= SKSpriteNode(fileNamed:「標識。 png「){ Logo.yScale = 1 ... } 有效,但圖像不顯示。我檢查並確保我的資產文件中有該圖像,並將其更名爲logo.png,但仍然無法使用。我甚至將圖像移動到不同的目錄。任何想法如何解決? –

+0

修正了它,將SKSpriteNode(fileNamed:...)更改爲SKSpriteNode(imageNamed:...) –

相關問題