2014-10-16 15 views
5

Sono noobie in Swift. Non riesco a capire perché questo codice:Swift: SKAction.runBlock -> Argomento mancante per il parametro 'completamento' nella chiamata MA PERCHÉ?

class GameScene: SKScene, SKPhysicsContactDelegate { 
    var statements = Statements() 

override func didMoveToView(view: SKView) { 
    runAction(SKAction.repeatActionForever(
     SKAction.sequence([ 
     SKAction.runBlock(addLabel(statements)), 
     SKAction.waitForDuration(2.0) 
     ]) 
    )) 
} 
func addLabel(statements: Statements) {...} 
} 

risultati per: Mancare l'argomento per il parametro 'completamento' in call

risposta

10

Ancora un altro strano bug nel tipo checker. Poiché il tipo di non è Void -> Void è Void, il compilatore presuppone che stiate invocando un altro metodo da qualche altra parte (dove è da qualche altra parte, non ne ho idea.Non c'è alcun metodo chiamato runBlock(_:) ovunque riesca a trovarlo). Prova una chiusura esplicita quando cose del genere succedono

class GameScene: SKScene { 
    var statements = Statements() 

    override func didMoveToView(view: SKView) { 
     runAction(SKAction.repeatActionForever(SKAction.sequence([ 
      SKAction.runBlock({ self.addLabel(self.statements) }), 
      SKAction.waitForDuration(2.0) 
     ]))) 
    } 

    func addLabel(statements: Statements) -> Void { } 
} 
+0

Ha funzionato, grazie! – user3673836

Problemi correlati