Я хочу проверить, были ли элементы добавлены в массив в swift с помощью KVO, и я по существу копировал этот пример из документации Apple, но когда код работает, он делает не поймать, когда размер массива обновляется. Вот то, что я сейчас:Использование KVO для указания того, когда элементы добавлены в массив
class ShowDirectory: NSObject {
var shows = [Show]()
dynamic var showCount = Int()
func updateDate(x: Int) {
showCount = x
}
}
class MyObserver: NSObject {
var objectToObserve = ShowDirectory()
override init() {
super.init()
objectToObserve.addObserver(self, forKeyPath: "showCount", options: .New, context: &myContext)
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if context == &myContext {
if let newValue = change?[NSKeyValueChangeNewKey] {
print("\(newValue) shows were added")
}
} else {
super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
}
}
deinit {
objectToObserve.removeObserver(self, forKeyPath: "myDate", context: &myContext)
}
}
После того как я добавить шоу в массив, я поставил showCount, равное количеству элементов в массиве, однако, не печатает «были добавлены X-шоу» утешать , Моя функция viewDidLoad() просто вызывает функцию, которая добавляет элементы в массив, и ничего больше на данный момент.
Я не могу воспроизвести эту проблему. Вот мой смысл (с детской площадки): https://gist.github.com/rnapier/f3354765347631b1208892fe30e0fd31 Он печатает «2 добавления были добавлены». Можете ли вы опубликовать свой точный код, демонстрирующий проблему? –