2
要素が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ショーが追加されました。"問題を示す正確なコードを投稿できますか? –