为什么我不能用gestureTapRecogniser调用我的函数

时间:2017-12-02 10:56:53

标签: ios swift

我有这个简单的功能,当有人点击屏幕时,函数内部的代码会执行,我知道函数中的代码可以工作,输入时我没有错误。

    func reload(gestureRecognizer: UITapGestureRecognizer) {
        let skView = self.view!
        skView.presentScene(scene)
    }

我有这个if语句,并且所有代码都工作,除非我在某个事件发生后运行该函数。在我尝试调用'reload()'的行中,我收到错误'使用未解析的标识符重新加载'。你能告诉我我做错了吗?谢谢!

    if score[0] >= 10 {
        pauseGame()

        let textLabel = SKLabelNode(fontNamed: "Helvetica")
        textLabel.fontSize = 30
        textLabel.fontColor = SKColor.white
        textLabel.position = CGPoint(x:  20, y: 20)
        textLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.center
        textLabel.text = "HELLO"
        addChild(textLabel)

        reload()

    }
    else if
        score [1] >= 10 {
        pauseGame()
        sleep(5)

        let textLabel = SKLabelNode(fontNamed: "ChalkboardSE-Bold")
        textLabel.fontSize = 30
        textLabel.fontColor = SKColor.white
        textLabel.position = CGPoint(x:  20, y: 20)
        textLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.center
        textLabel.text = "HELLO"
        addChild(textLabel)

        reload()

    }

1 个答案:

答案 0 :(得分:1)

只需更改

reload()

reload(gestureRecognizer: nil)

reload方法参数应为UITapGestureRecognizer?可选。

func reload(gestureRecognizer: UITapGestureRecognizer?) {
        let skView = self.view!
        skView.presentScene(scene)
}

另一个简短的方法是

更改使用UITapGestureRecognizer

声明的操作方法
...action: #selector(self.reload())...

表示只需调用(_:)函数即可删除reload()无需执行任何操作。