Find index of object in einem Array vom Typ [SomeProtocol]
Ich habe ein Array namens subscribers, das Objekte speichert, die dem Protokoll JABPanelChangeSubscriber entsprechen. Das Protokoll wird als @ deklarie
public protocol JABPanelChangeSubscriber {
}
und mein Array ist deklariert als:
var subscribers = [JABPanelChangeSubscriber]()
Nun muss ich eine Methode implementieren, um einen Abonnenten zur Liste hinzuzufügen, aber zuerst muss überprüft werden, ob dieser Abonnent noch nicht hinzugefügt wurde.
public func addSubscriber(subscriber: JABPanelChangeSubscriber) {
if subscribers.find(subscriber) == nil { // This ensures that the subscriber has never been added before
subscribers.append(subscriber)
}
}
Leider ist JABPanelChangeSubscriber nicht gleichwertig, und ich kann nicht herausfinden, wie ich es gleichwertig machen kann. Daher gibt mir die find-Methode einen Fehler. Kann mir jemand mit einer Lösung oder einem Vorschlag für einen anderen Ansatz weiterhelfen?
Vielen Dan