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.