1

CoreData 情報を調べて、NSTimeInterval 内にある createdAt (NSDate としてのオブジェクトの一部) を持つオブジェクトを見つける方法を見つけようとしています。これを設定するにはどうすればよいですか?

私は次のドキュメントを見てきました: http://developer.apple.com/documentation/Cocoa/Conceptual/Predicates/predicates.html

しかし、私はそこに何も見つけていません。

2 つのタイム スタンプを作成し、SQL の BETWEEN を使用する必要がありますか?

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

0

まず第一に、NSDate が NSTimeInterval 内にあるかどうかを確認しても意味がありません。なぜなら、NSTimeInterval はその場所ではなく時間の長さを指定するだけだからです。代わりに、間隔の開始と終了を指定する 2 つの別個の NSDates を使用する必要があります。

これは次のようになります (beginningTime と endTime は NSDates です)。

NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"YourEntityName" inManagedObjectContext:yourContext];
NSPredicate *beginningPredicate = [NSPredicate predicateWithFormat:@"createdAt >= %@", beginningTime];
NSPredicate *endPredicate = [NSPredicate predicateWithFormat:@"createdAt <= %@", endTime];
request.predicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:beginningPredicate, endPredicate, nil]];
NSArray *results = [yourContext executeFetchRequest:request error:NULL];
于 2011-10-30T20:38:01.720 に答える