2011-01-03 7 views
1

特定のタイプのエンティティが追加/変更/削除されるたびに通知を受けたいと思います。私はmanagedObjectContextにオブザーバを追加することでこれが可能であることを知っていますが、返される3つのセットを検索して、そのタイプのオブジェクトが含まれているかどうかを確認する必要があります。 filteredSetUsingPredicateを使用できますが、変更があるたびにO(n)操作を3回行うのは非効率的です。これを達成するもう一つのより効率的な方法がありますか?コアデータ:特定のタイプのエンティティのすべての変更を観察

+0

エンティティを管理オブジェクトと混同しないでください。エンティティはクラスに類似した抽象であり、コンテキストに追加または削除されません。管理対象オブジェクトは、エンティティを表す具体的なインスタンスであり、コンテキスト内で挿入、更新、削除されます。 – TechZen

答えて

5

と思われますか?どのようなテストと観察に基づいて? NSArrayControllerはどのように機能していると思いますか(ヒント - Cocoa Bindingsで読む?) :-)もちろん、SQLiteストアタイプでは、フェッチのためにデータベース内のフィルタリングを取得しますが、オブジェクトのメモリ内の変更はどうなりますか?

私があなたの立場にいたなら、私はそれを配線し、私が想像したところで性能テストをするのは、現実のユーザーが遭遇する可能性のある合理的な最悪のシナリオです。

パフォーマンスが実際には不足している場合は、データモデル、特定のエンティティのすべてのインスタンスに対するすべての変更を観察する必要がある理由、およびパフォーマンスシンクが発生していることを示すインストゥルメントについて説明します。

関連する問題