2012-02-14 81 views
1

我的核心數據模型一個NSDate屬性喜歡這裏:在覈心數據查詢與日期使用NSPredicate

@interface DBVial : NSManagedObject 
@property (nonatomic, retain) NSDate * updated_at; 

我怎樣才能得到所有的DBVial記錄的最近一次(根據的updated_at)記錄?我可以使用NSPredicate執行它嗎? 我知道我可以獲取所有這些文件,然後對它們進行排序並獲得第一個,但是是否可以僅使用NSPredicate?

回答

1

是。無需使用NSPredicate,而是將NSFetchRequestsortDescriptor設置爲按日期對記錄進行排序,並且fetchLimit因此您只能獲得最近的記錄。像這樣:

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
request.entity = [NSEntityDescription entityForName:@"DBVial" 
          inManagedObjectContext:yourManagedObjectContext]; 
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"updated_at" ascending:NO]]; 
request.fetchLimit = 1; 
NSError *error = nil; 

DBVial *mostRecent = [[context executeFetchRequest:request error:&error] lastObject]; 
+0

謝謝,這就是我的預期 – 2012-02-14 11:16:30