Conformidade com o protocolo MKAnnotation via protocolo personalizado

Quero obter 2 ou mais tipos diferentes de objetos em um mapa facilmente. Swift 2.0, eu queria usar protocolos.

Eu criei um protocolo que esses objetos também precisam estar em conformidade. Presumo que agora qualquer item esteja em conformidade com o PinProtocol como essencialmente o mesmo que ser uma MKAnnotation ... apenas mais!

protocol PinProtocol: MKAnnotation {
    // stuff
}

Tenho 2 turmas, funcionários e clientes

Ambos estão em conformidade com o PinProtocol (que também precisa estar em conformidade com o MKAnnotation)

Eu sei que isso está funcionando como se eu configurasse minha classe como tal,

class Client: NSObject, PinProtocol {
     //var coordinate:CLLocationCoordinate2D // Leave out get doesn't conform to protocol warning as expected
}

Portanto, isso me diz que o PinProtocol está funcionando conforme o esperado, pois os itens que precisam aderir ao PinProtocol também estão em conformidade com o protocolo MKAnnotation. Porque coordenada: CLLocationCoordinate2D, é requerida pelo MKAnnotation.

Então, por que eu recebo esse problema com

let staffAndClients = [PinProtocol]()

mapView.addAnnotations(staffAndClients) // not allowed!
//mapView.addAnnotations(pins as! [MKAnnotation]) // also not allowed

O erro é: não é possível converter o valor do tipo [PinProtocol] para o argumento esperado [MKAnnotation]

O PinProtocol não está em conformidade com o MKAnnotation, portanto deve funcionar.

Mas fazer isso funciona bem

let staff = [Staff]()
mapView.addAnnotations(staff) // no problem
let clients = [Client]()
mapView.addAnnotations(clients) // no problem

Posso solucionar o problema usando o AnyObject, mas por que não consigo usar o PinProtocol - o que para mim parece mais limpo e toda a idéia de extensões de protocolo.

Obrigado por qualquer ajuda.

Addit ...

A maneira de contornar isso para aqueles que estão enfrentando um problema semelhante é

var pins = [AnyObject]()
mapView.addAnnotations(pins as! [MKAnnotation])

questionAnswers(2)

yourAnswerToTheQuestion