viewDidLoad
、viewWillAppear
、およびviewDidAppear
はおそらく、すべてのアレイコントローラは、コアデータストアからデータを収集し前に呼び出されます。あなたは変化に対応する機会を与えられている
// MyPopUpController.swift
var ArrayControllerArrangedObjectsObservationContext = "arrayController.arrangedObjects"
func viewDidLoad() {
arrayController.addObserver(self,
forKeyPath: "arrangedObjects",
options: .New | .Old,
context: &ArrayControllerArrangedObjectsObservationContext)
}
:ご使用のアレイコントローラのarrangedObjects
配列への変更の言葉あなたはこのオブジェクトを監視し、変更を報告するオブザーバをインストールするには、前述の方法のいずれかを使用することができますを取得するには
// MyPopUpController.swift
arrayController.removeObserver(self,
forKeyPath: "arrangedObjects",
context: &ArrayControllerArrangedObjectsObservationContext)
01:あなたはあなたがオブザーバーを削除する必要が行う必要があるものは何でもカウントをチェックし、やった後
observeValueForKeyPath...
// MyPopUpController.swift
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
switch context {
case &ArrayControllerArrangedObjectsObservationContext:
// Check counts here
default:
super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
}
であなただけの、起動時に観測者が必要な場合
コードをメインループにスケジュールするようにしてください。アレイコントローラはすぐには充電されません。 –
はい、それが満たされていることをどのように知っているのですか? – Gargoyle
いつ監視対象の管理オブジェクトコンテキストを設定しますか? – Willeke