Pressione e segure o botão para "repetir o disparo"

Eu me referi a inúmeras outras perguntas sobre um botão de pressionar e segurar, mas não há muitas relacionadas ao Swift. Eu tenho uma função conectada a um botão usando o evento touchUpInside:

@IBAction func singleFire(sender: AnyObject){
    //code
}

... e outra função destinada a chamar a função acima repetidamente enquanto o mesmo botão estiver pressionado e parar quando o botão não estiver mais pressionado:

@IBAction func speedFire(sender: AnyObject){

    button.addTarget(self, action: "buttonDown:", forControlEvents: .TouchDown)
    button.addTarget(self, action: "buttonUp:", forControlEvents: .TouchUpOutside)

    func buttonDown(sender: AnyObject){
        timer = NSTimer.scheduledTimerWithTimeInterval(0.3, target: self, selector: "singleFire", userInfo: nil, repeats: true)     
    }

    func buttonUp(sender: AnyObject){
        timer.invalidate()
    }
}

Não sei ao certo o que estou fazendo de errado e não sei como configurar os eventos de toque no mesmo botão para uma função diferente.

questionAnswers(3)

yourAnswerToTheQuestion