Ich versuche, ein Swift 2.2 Projekt Swift 3, zu konvertieren und ich die folgende Fehlermeldung erhalten:Verwendung - observeValueForKeyPath: ofObject: Änderung: Kontext: in Swift 3
Method 'observeValue(forKeyPath:ofObject:change:context:)' with Objective-C selector 'observeValueForKeyPath:ofObject:change:context:' conflicts with method 'observeValue(forKeyPath:of:change:context:)' from superclass 'NSObject' with the same Objective-C selector" for the function call
Auf meiner Funktion, deren Unterschrift:
"Workaround: Add an @objc(objectiveC:name:) attribute before the implementation of the optional requirement with the original Objective-C selector inside."
Aber es ist nicht cl:
func observeValue(forKeyPath keyPath: String?, ofObject: Any?, change: [String : Any]?, context: UnsafeMutableRawPointer?)."
ich den Rat auf der Swift 3 Migration Guide Website gelesen Ohr zu mir, wie das eigentlich in einer Quelldatei angewendet werden soll, und nichts, was ich bis jetzt versucht habe, hat erfolgreich gearbeitet.
Kann jemand erklären, wie man das richtig einrichtet?
funktioniert nicht (wie von swift 3.0.1) siehe + Mark Antwort –
Es scheint, dass die Klasse, die das ist, eine Unterklasse von NSObject sein muss. Versucht, dies in einem Singleton ohne Unterklasse NSObject zu tun und funktioniert nicht. –
@SunnyPatel Ja, KVO arbeitet nur mit NSObject-Unterklassen (eigentlich nur mit verwalteten Objc-Laufzeitklassen). – Cristik