Сравнение дат в запросе основных данных с использованием NSPredicate - PullRequest
1 голос
/ 14 февраля 2012

Моя базовая модель данных имеет атрибут NSDate, как здесь:

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

Как я могу получить самую последнюю (согласно updated_at) запись из всех записей DBVial? Могу ли я выполнить это с помощью NSPredicate? Я знаю, что могу получить их все, а затем отсортировать и получить первый, но возможно ли использовать вместо этого только NSPredicate?

1 Ответ

1 голос
/ 14 февраля 2012

Да.Не нужно использовать NSPredicate, вместо этого установите sortDescriptor *1003* для сортировки записей по дате и 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];
...