Encontre o índice do objeto em uma matriz do tipo [SomeProtocol]
Eu tenho uma matriz chamada assinantes que armazena objetos em conformidade com o protocolo JABPanelChangeSubscriber. O protocolo é declarado como
public protocol JABPanelChangeSubscriber {
}
e minha matriz é declarada como:
var subscribers = [JABPanelChangeSubscriber]()
Agora preciso implementar um método para adicionar um assinante à lista, mas primeiro é necessário verificar se esse assinante ainda não foi adicionado antes.
public func addSubscriber(subscriber: JABPanelChangeSubscriber) {
if subscribers.find(subscriber) == nil { // This ensures that the subscriber has never been added before
subscribers.append(subscriber)
}
}
Infelizmente, o JABPanelChangeSubscriber não é Equatable, e não consigo descobrir como torná-lo Equatable, portanto, o método find está me causando um erro. Alguém pode me ajudar com uma correção ou com uma sugestão para uma abordagem diferente?
obrigado