1

私はiOSアプリを作成しており、Core Dataを使用して一連のEventオブジェクト(誕生日、クリスマス、会議など)を保存しています。各Eventオブジェクトには、タイプが関連付けられた日付属性がありますNSDate

プログラムの過程で、NSDateオブジェクトのNSArrayを収集しましたが、これらの日付に関連付けられているコアデータオブジェクトを削除するにはどうすればよいでしょうか。たとえば、日付11/7と12/9で構成される配列がある場合、日付属性が11/7または12/9のEventオブジェクトを削除するにはどうすればよいですか?

私が考えた1つの可能性は、Event述語とフェッチ要求を使用して対応するすべてのオブジェクトをフェッチしてから、それらをすべて削除することです。ただし、これはやや非効率的なようです。オブジェクトの1つが本当に、本当に大きい場合はどうEventなりますか...それでは、向きを変えて削除できるようにするために、オブジェクトをフェッチするのに永遠にかかることはありませんか?

これを処理するためのよりエレガントな方法があるかどうか疑問に思っています...ありがとう

4

1 に答える 1

1

これは1回のフェッチで処理できます。IN演算子を使用して、日付のNSArrayをコレクションとして使用して述語を作成し、フェッチリクエストを実行して(マイクが前述したように、比較的高速です)、オブジェクトを削除します。詳細については、「述語プログラミングガイド」の「集計演算子」を参照してください。

于 2012-07-11T16:26:09.367 に答える