Найти индекс объекта в массиве типа [SomeProtocol]
У меня есть массив с именем абонентов, который хранит объекты, которые соответствуют протоколу JABPanelChangeSubscriber. Протокол объявлен как
public protocol JABPanelChangeSubscriber {
}
и мой массив объявлен как:
var subscribers = [JABPanelChangeSubscriber]()
Теперь мне нужно реализовать метод для добавления подписчика в список, но сначала он должен проверить, что этот подписчик еще не был добавлен ранее.
public func addSubscriber(subscriber: JABPanelChangeSubscriber) {
if subscribers.find(subscriber) == nil { // This ensures that the subscriber has never been added before
subscribers.append(subscriber)
}
}
К сожалению, JABPanelChangeSubscriber не является Equatable, и я не могу понять, как сделать его Equatable, поэтому метод find дает мне ошибку. Может кто-нибудь помочь мне с исправлением или предложением другого подхода?
Спасибо