Core Dataは、生のデータベース呼び出しを作成するときにカテゴリを組み込むことができるとは思えません。
あなたの場合、2つの日付を作成します。1つは今年の1月1日0:00で、1年後です。
NSString *basePredicateString = @"creationDate >= %@ AND creationDate < %@";
NSPredicate *predicate = [NSPredicate predicateWithFormat:basePredicateString, startDate, endDate];
完全を期すために—実際の年の開始日と終了日を生成する方法:
NSDate *startDate = [NSDate date];
[[NSCalendar currentCalendar] rangeOfUnit:NSYearCalendarUnit startDate:&startDate interval:NULL forDate:startDate];
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
comps.year = 1;
NSDate *endDate = [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:startDate options:0];
この回答の下のコメントで、jbrennanは、実際にカテゴリを述語に組み込むことができると提案しました。彼はNSArraysとしてのコレクションに適していますが(彼はテストプロジェクトへのリンクを追加しました)、Core Dataフェッチ要求に関しては機能しません—少なくとも私はそれを機能させることができません。私は試した。これが私のテストです:https ://github.com/vikingosegundo/CoreDataCategoryTest