ios swift key-value-observing

ios - Error con: anular la función pública observeValueForKeyPath



swift key-value-observing (2)

Cambie [NSObject:AnyObject] en la declaración a [String:AnyObject] .

Estoy usando un código que funcionó con xCode7 Beta 2. ¿Recibí Beta 3 y ahora tengo este problema que parece un error de xCode?

Para una de mis clases públicas ...

override public func observeValueForKeyPath...

error: el método no anula ningún método de su superclase

Así que saco la "anulación":

public func observeValueForKeyPath

error: el método entra en conflicto con el método de la superclase NSObject con el mismo selector de Objective-C, ja! Me fue mentido por el primer error. No compilará de ninguna manera.
¿Alguna ayuda por favor?


Si la definición se copia de NSKeyValueObserving.h , su anulación se NSKeyValueObserving.h como la siguiente.

iOS SDK 9.0

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) { //... }

Antes de iOS SDK 9.0

override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject: AnyObject], context: UnsafeMutablePointer<Void>) { // ... }

Nota: para métodos como este, normalmente puede presionar Cmd+Shift+O e ir directamente al campo emergente Abrir rápidamente ... donde cualquier definición podría copiarse / pegarse y Xcode la buscará dentro del proyecto / SDK. Esté atento al alcance de iOS en este caso.