2015-04-05 71 views
0

我的错误出现在“loadMan”函数中,表示在声明它之前无法捕获“loadmanTextures”。我不明白它有什么问题.....我已经在下面添加了“loadmanTextures”的功能。我该怎么办 ???错误:在声明之前无法捕获... iOS swift

import SpriteKit 


class GameScene: SKScene { 
var man:SKSpriteNode 
var runningManTextures = [SKTexture]() 


override init(size: CGSize){ 

    self.man = SKSpriteNode(texture: SKTexture(imageNamed: "man_0")) 



    super.init(size:size) 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

override func didMoveToView(view: SKView) { 

    func loadMan() { 
     loadManTextures() 
     man.position.y -= man.size.height/2 
     addChild(man) 
    } 

    func loadManTextures() { 
     var runningAtlas = SKTextureAtlas(named: "man") 
     for i in 1...3 { 
      var textureName = "man_\(i)" 
      var temp = runningAtlas.textureNamed(textureName) 
      runningManTextures.append(temp) 
     } 
    } 

} 

回答

0

错误消息非常清楚。也许你不明白你自己的代码的结构?你有,有意或无意地把两个功能另一个功能(也称为功能,在功能局部功能):

override func didMoveToView(view: SKView) { 
    func loadMan() { 
     loadManTextures() 
    } 
    func loadManTextures() { 
    } 
} 

我不知道你为什么这样做。但是,如果你这样做,那么第一个函数不能调用第二个函数,因为这是现在可执行代码 - 在loadManTextures声明现在必须执行使这一功能存在,第一,它可以被称为前:

override func didMoveToView(view: SKView) { 
    func loadManTextures() { 
    } 
    func loadMan() { 
     loadManTextures() 
    } 
} 

当然会赚更多的意义不使用的功能,在功能,反而使他们的所有方法:

override func didMoveToView(view: SKView) { 
} 
func loadMan() { 
    loadManTextures() 
} 
func loadManTextures() { 
} 

现在的顺序并不重要。

相关问题