Ответ 1
Измените [NSObject:AnyObject]
в объявлении на [String:AnyObject]
.
Я использую код, который работал с бета-версией xCode7. Просто получил Beta 3, и теперь я получаю эту проблему, которая кажется ошибкой xCode?
Для одного из моих публичных классов...
override public func observeValueForKeyPath...
error: метод не отменяет какой-либо метод из его суперкласса
Итак, я вынимаю "переопределить":
public func observeValueForKeyPath
error: метод конфликтует с методом из суперкласса NSObject с тем же селектором Objective-C
ха! Первая ошибка. Не будет компилироваться в любом случае.
Любая помощь пожалуйста?
Измените [NSObject:AnyObject]
в объявлении на [String:AnyObject]
.
Если определение скопировано из NSKeyValueObserving.h
, ваше переопределение будет выглядеть следующим образом.
iOS SDK 9.0
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
//...
}
До IOS SDK 9.0
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject: AnyObject], context: UnsafeMutablePointer<Void>) {
// ...
}
Примечание.. Для таких методов, как этот, вы обычно можете нажать Cmd+Shift+O
и сразу перейти к открытому быстрому всплывающему окну, где любое определение может быть скопировано/вставлено, а Xcode будет искать для него в рамках проекта /SDK. Наблюдайте за областью iOS в этом случае.