dieses Protokolls:Swift 3: Kann nicht (Protokoll-Methode) mit Argumentliste vom Typ (generic) aufrufen
import Foundation
protocol Updatable {
associatedtype E
func updateValuesWith(_ newElement: E)
}
Und diese Implementierung:
private func update<T: NSObject>(_ values: inout [T], with newValues: [T]) where T: Updatable {
guard values.count != 0 else { values = newValues; return }
for newElement in newValues {
let newIndex = newValues.index(of: newElement)
if values.contains(newElement) {
let oldIndex = values.index(of: newElement)
values[oldIndex!].updateValuesWith(newElement) //<--- PROBLEM HERE
if oldIndex != newIndex {
swap(&values[oldIndex!], &values[newIndex!])
}
} else {
values.insert(newElement, at: newIndex!)
}
}
for element in values where values.index(of: element)! > newValues.count {
values.remove(at: values.index(of: element)!)
}
}
ich nicht, warum ich bin immer diese Fehlermeldung
nicht aufrufen kann 'updateValuesWith' mit einem Argument Liste vom Typ '(T)'
ein Argument Liste vom Typ '(T.E)'
auf Linie erwartet.
Nach einigen unfruchtbaren Recherchen bin ich überzeugt, dass ich etwas sehr grundlegendes vermissen muss, aber immer noch nicht genau herausfinden kann was.
Erleuchte mich bitte?
Ok ich verstehe jetzt, danke Mann. "Updatable" ist ein Protokoll, dem einige Klassen in meinem Modell entsprechen. Sie haben jeweils ihre eigene Implementierung der Protokollmethode, so dass sie alle eine "nützliche Schnittstelle" implementieren. Klingt das richtig oder gibt es eine Best Practice, die Sie teilen könnten? – Herakleis