2012-02-14 86 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

相关问题