0

CoreDataModelを使用してiOSアプリケーションを追跡する費用があります。

シナリオ:

->属性が「vendor」、「date」、「amount」などの「Money」という名前の抽象的な親エンティティ。2つのサブエンティティ「Expense」と「Income」は、親エンティティ「Money」から継承します。次に、「Category」や「subCategory」などの他のエンティティとその属性があります。現在の合計:データモデル内の5つのエンティティ(お金、費用、収入、カテゴリ、およびサブカテゴリ)。

質問:私が達成したいのは、毎日、毎週、隔週、毎月、毎年の経費を追跡することです。エンティティに12個の属性(1月から12月->月の名前)を持つ「月」と言わせることを考えていますが、それほど複雑ではありませんか?

考え?

私はテーブルビューを持っており、NSFetchedResultsControllerを使用して、テーブルビューに経費と収入の組み合わせを入力しています。

4

1 に答える 1

0

適切な期間でフィルタリングNSFetchRequestするを使用して作成する必要があります。この期間NSPredicateのフィルターを返すメソッドを実装できる2つの日付の間のすべての経費を一覧表示するとします。NSFetchRequest

- (NSFetchRequest *)filteredFetchRequestForEntity:(NSString *)entityName startDate:(NSDate *)startDate endDate:(NSDate *)endDate
{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@", startDate, endDate];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];
    [fetchRequest setPredicate:predicate];

    return fetchRequest;
}

次に、このfetchRequestを、たとえば、NSFetchedResultsController 他の質問の私の回答と同様に使用できます: CoreDataとTableViews

次に、必要なのは、希望する期間のstart-およびendDateのNSDateオブジェクトを作成し、それらをこのメソッドに渡すことだけです。

于 2012-10-28T12:40:33.067 に答える