2009-07-08 12 views
1

CoreData情報を調べ、NSTimeInterval内にあるcreatedAt(NSDateとしてのオブジェクトの一部)を持つオブジェクトを見つける方法を探しています。これをどのように設定するのですか?CoreData - 時間範囲(NSTimeInterval)でフォーマットされたNSPredicate

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

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

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

何か助けが素晴らしいだろう。

答えて

0

まず、NSDateがNSTimeInterval内にあるかどうかをチェックするのは意味がありません。なぜなら、NSTimeIntervalはその場所ではなく時間の長さを指定するだけなのでです。代わりに、間隔の開始と終了を指定する2つの別々のNSDateを使用する必要があります。

次のようになります(beginTimeと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]; 
関連する問題