2009-07-20 15 views
2

iPhone向けに開発するのは初めてで、データ管理にCore Dataを使用しています。私の管理対象オブジェクトにはcreationDateというプロパティがあり、データベースにあるすべての異なる日付のリストが必要です。私は iPhone Coreデータの日付の操作

を設定するオーバーヘッドを削減する[fetchRequest setPropertiesToFetch:[NSArrayのarrayWithObject: "のCreationDate" @]];

これがすべて必要なためです。私は[fetchRequest setReturnsDistinctResults:YES]を設定することができます知っている

。別の日付を取得するにはどうすればよいですか?フェッチ要求でNSDateの日付部分だけを取得するにはどうすればよいですか?

おかげで、

トーマス

P.S. SQLでは、次のようになります。SELECT DISTINCT DATE(creationDate)FROM events;

答えて

4

「NSDateの日付部分」とは、時間とは区別されると思いますか?店舗内のエントリにエンコードされた時間がある場合は、別個の結果の目的で直接表現することはできません。あなたができることは、あなたのモデルのcreationDateを2つのプロパティ、日付と時間に分割し、すべての日付を1回に正規化することです(または、時間を気にしない時間を気にしない場合)。実際にまだ時間が必要な場合は、そこにありますが、日付に対して純粋にクエリを実行できます。

エンティティに独自のサブクラスがある場合は、データを取得するカスタムセッターを作成し、NSDateComponentsを介してコンポーネントを抽出し、NSCalendarを介してこれらのコンポーネントを日付に再アセンブルします。

はい、日付に対処する方が簡単でなければなりませんように思えるが、やや遠回りのパスを取ることが必要です。