ich eine Equatable
KlasseANYOBJECT versuchen werfen
class Item: Equatable {
var value: AnyObject?
var title: String
init(title: String, value: AnyObject?) {
self.title = title
self.value = value
}
//Equatable
public static func ==(lhs: Item, rhs: Item) -> Bool {
return ((lhs.title == rhs.title) && (lhs.value === rhs.value))
}
}
Aber ich werfe value
zu gleichzusetzen will try var müssen gleichzusetzen, so dass weiche gleichzusetzen Ergebnis
if let lValue = lhs.value as? Equatable, // Error
let rValue = rhs.value as? Equatable { // Error
valueEq = (lValue == rValue)
} else {
valueEq = (lhs.value === rhs.value)
}
Dieser Code catch Kompilierungsfehler erhalten über Generisches Gleichförmiges
Wie ich s kann ich richtig Equatable für diese Klasse tun?
UPD
ich meine Item
in UITableViewCell
in meinem Storyboard verwenden möchten. Ich kann nicht generisch erstellen UITableViewCell
. Und wenn ich versuche Artikel als Generic<T: Equatable>
Klasse, werde ich die Typen in meinen Zellen zu spezifizieren gezwungen,
var items: [Item<OnlyThisHashableClass>]
aber ich Artikel verwenden mag, in Zellen für alle Objekte
Welche Frage haben Sie mit dem Code mit euch auf dem Laufenden? – rmaddy
Sie müssen einen benutzerdefinierten Werttyp erstellen, der Equatable entspricht. –
Aktualisieren Sie Ihre Frage mit der genauen und vollständigen Fehlermeldung, nicht eine Zusammenfassung. – rmaddy