1

作成された NSDate を格納する NSManagedObject, foo があります。また、オブジェクトが有効な秒数を格納する別のフィールド lifespan もあります。各 foo は異なる寿命値を持つことができます。寿命を過ぎていないフードをすべて返却することはできますか?私の NSPredicate でそれを表現する方法がわかりませんか、それが可能かどうかさえわかりませんか?

4

2 に答える 2

2

はい、可能です。例えば:

NSDate * yesterday = [NSDate dateWithTimeIntervalSinceNow:-(60 * 60 * 24)];
NSPredicate * predicate = [[NSPredicate alloc] initWithFormat:@"dateCreated > %@", yesterday];
NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setPredicate:predicate];
NSError * error = nil;
NSArray * results = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

述語の記述に関する詳細情報は次のとおりです。http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Conceptual/Predicates/Articles/pCreating.html

于 2013-07-15T17:26:08.000 に答える
2

Core Data fetch リクエストには、実際には単純な算術式を含めることができます。したがって、「created + lifespan >= now」のすべてのオブジェクトを見つけるには、次のようにします。

NSDate *now = [NSDate date];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"created + lifespan >= %@", now];
于 2013-07-15T20:14:47.800 に答える