2011-09-23 4 views
0

CoreDataエンティティのkeyPathのオブザーバを保存して復元できるかどうかは疑問です。ObserverをCoreDataオブジェクトに保存するためのクリーンな方法はありますか?

例:私はmanagedObjectContextに300人の従業員を持っています。私は最初にそれらを挿入するときaddObserverを呼び出します:.. someValueが変更された場合、いくつかのオブジェクトが通知されるようにそれらすべてのために。

保存するにはsaveAction:を呼び出します。私はアプリケーションを閉じます。再起動すると、300 xのaddObserverを復元するにはどうすればよいでしょうか?

ありがとうございました。よろしくです。 よろしくお願いします。

編集:別名、CoreDataエンティティをアーカイブ解除するときにオブザーバーを追加する最も良い方法は何ですか? Modelクラスのカスタムinit()? forループ内のEmployeeのすべてのエンティティをフェッチし、addObserverを呼び出します。

答えて

2

これは、従業員エンティティのサブクラスNSManagedObjectであり、awakeFromFetchメソッドとawakeFromInsertメソッドをオーバーライドするような方法が最良のようです。最初にエンティティを挿入するときにawakeFromInsertが呼び出されるため、既存のコードを移動してオブザーバをそこに追加することができます。 awakeFromFetchはフェッチ時にオブザーバーを追加する場所です。

+0

ありがとう、これらの方法を知らなかった!彼らは私が欲しいものをまさにやるべきように聞こえる! :) – tnull

関連する問題