Ios Swift SpriteKit';(15美元)——>$T16和x27;与';SKEmitterNode';

Ios Swift SpriteKit';(15美元)——>$T16和x27;与';SKEmitterNode';,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我是新来的斯威夫特 我得到了这个错误:”($T15)->$T16”与“SKEmitterNode”不相同。 根据该代码: func didBeginContact(contact: SKPhysicsContact) { let untypedEmitter : AnyObject = NSKeyedUnarchiver.unarchiveObjectWithFile(NSBundle.mainBundle().pathForResource("Explosion", ofType: "

我是新来的斯威夫特

我得到了这个错误:
”($T15)->$T16”与“SKEmitterNode”不相同。

根据该代码:

func didBeginContact(contact: SKPhysicsContact) {
    let untypedEmitter : AnyObject = NSKeyedUnarchiver.unarchiveObjectWithFile(NSBundle.mainBundle().pathForResource("Explosion", ofType: "sks")!)!
    let emitter:SKEmitterNode = untypedEmitter as SKEmitterNode
    emitter.position = Player.position

    self.addChild(emitter)
    emitter(runAction(SKAction.sequence([SKAction.waitForDuration(0.1), SKAction.runBlock(emitter.particleBirthRate = 0)])))
}
错误在最后一行

截图:

我正在运行XCode版本6.2


谢谢

您在节点上调用
runAction
方法时使用了错误的语法。应该是

emitter.runAction(SKAction.sequence([SKAction.waitForDuration(0.1), SKAction.runBlock({emitter.particleBirthRate = 0})]))
SKAction.runBlock({ /* code in here */ })
请注意从
emitter(runAction(…)
emitter.runAction(…)
的更改

编辑 还请注意,没有向
runBlock
传递任何块。应该是

emitter.runAction(SKAction.sequence([SKAction.waitForDuration(0.1), SKAction.runBlock({emitter.particleBirthRate = 0})]))
SKAction.runBlock({ /* code in here */ })
而不仅仅是

SKAction.runBlock( /* just code here wouldn't be inside of a block/closure */ )

它起作用了,但现在我发现一个新错误
无法找到并重载接受提供的参数的“waitForDuration”
,这是一个非常没有帮助的错误,因为问题出现在另一个操作(runBlock)中。我已经编辑了答案