Swift 2.2 #selector no erro de compilação de extensão de protocolo

Eu tenho uma extensão de protocolo que costumava funcionar perfeitamente antes do Swift 2.2.

Agora eu tenho um aviso que me diz para usar o novo#selector, mas se eu adicionar

nenhum método declarado com o Seletor Objective-C.

Tentei reproduzir o problema nessas poucas linhas de código, que podem ser facilmente copiadas e coladas também no playground

  protocol Tappable {
    func addTapGestureRecognizer()
    func tapGestureDetected(gesture:UITapGestureRecognizer)
}

extension Tappable where Self: UIView {
    func addTapGestureRecognizer() {
        let gesture = UITapGestureRecognizer(target: self, action:#selector(Tappable.tapGestureDetected(_:)))
        addGestureRecognizer(gesture)
    }
}

class TapView: UIView, Tappable {
    func tapGestureDetected(gesture:UITapGestureRecognizer) {
        print("Tapped")
    }
}

Há também uma sugestão para anexar a esse método no protocolo@objc, mas se eu fizer isso, me pedirá também para adicioná-lo à classe que o implementa, mas depois que eu adicionar, a classe não estará mais em conformidade com o protocolo, porque parece não ver a implementação na extensão do protocolo.
Como posso implementar isso corretamente?