Ich möchte folgendes erreichen; in der Lage sein, jede gegebene Instanz aus einem Array zu entfernen. Folgendes ist jedoch nicht gültig Swift 3 Syntax:Swift generische Klasseninstanz vom Array entfernen
extension Array where Element: class { // error: Expected identifier for type name
mutating func remove(_ object: AnyObject) {
if let index = index(where: { $0 === object }) {
remove(at: index)
}
}
}
protocol MyProtocol: class { }
class MyClass: MyProtocol { }
var myInstance = MyClass()
var myArray: [MyProtocol] = [myInstance]
myArray.remove(myInstance)
Wie würde ein generischer Ansatz funktionieren? Ich möchte nicht die generische Erweiterung auf MyProtocol oder Equatable spezialisieren.
Dies wird die Methode 'remove' zu allen' Array'-Instanzen hinzufügen, und ich denke, der Fragesteller möchte diese Methode nur auf Arrays beschränken, die Klassen enthalten. – Cristik