2011-07-02 12 views
3

私はAPIを呼び出し、一連の結果を返すコードをいくつか用意しています。各メッセージには固有のIDがあります。NSFetchedResultsController/Core Dataの既存の値を確認する

残念ながら、以前に受信しておらず、コアデータデータベースに保存されていないメッセージをサーバが返信しないことを保証することはできません。

固有のIDは、「メッセージ」エンティティのNSNumberフィールドとして設定されています。

「メッセージ」が特定の一意のIDですでに存在するかどうかを確認するための方法が「オンザフライ」ですか。

現在、私はチェックする必要があるたびにヘルパーオブジェクトのインスタンスを作成し、NSPredicateを介してフィルタ結果を返すNSFetchedResultsControllerを作成しています。結果が返ってきたら、私は移動して、データベースに保存します。私はこれが遅いアプローチだと思っています...

助けてください? - はるかに良い。これは、実際にクエリを実行せずに、カウントを私に戻っています

NSUInteger count = [self.managedObjectContext countForFetchRequest:fetchRequest error:&error]; 

:これは私が必要なものであるように

答えて

3

が見えます。

+0

いいですね。あなたがこのルーチンを非常に頻繁に実行している場合に限り、その数値フィールドの "索引"をチェックすることで、さらに効率的にすることができるのだろうかと思います。 – Wienke

関連する問題