Encuentre el índice del objeto en una matriz de tipo [SomeProtocol]
Tengo una matriz llamada suscriptores que almacena objetos que se ajustan al protocolo JABPanelChangeSubscriber. El protocolo se declara como
public protocol JABPanelChangeSubscriber {
}
y mi matriz se declara como:
var subscribers = [JABPanelChangeSubscriber]()
Ahora necesito implementar un método para agregar un suscriptor a la lista, pero primero debe verificar que ese suscriptor no se haya agregado antes.
public func addSubscriber(subscriber: JABPanelChangeSubscriber) {
if subscribers.find(subscriber) == nil { // This ensures that the subscriber has never been added before
subscribers.append(subscriber)
}
}
Desafortunadamente, JABPanelChangeSubscriber no es Equatable, y no puedo entender cómo hacerlo Equatable, por lo que el método find me está dando un error. ¿Alguien puede ayudarme con una solución o con una sugerencia para un enfoque diferente?
Gracias