0

我有一个Entity“事件”,其中包含一个NSDate名为“AccidentDate”的属性。我正在尝试执行获取请求以仅获取最近的“AccidentDate”,但我不确定如何设置谓词以仅获取最后一个“AccidentDate”

以下是我到目前为止的代码...

NSFetchRequest *fetchRequest1 = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];

[fetchRequest1 setEntity:entity];

NSPredicate *predicate;                            //unknown code here
[fetchRequest1 setPredicate:predicate];

NSArray *items = [self.managedObjectContext executeFetchRequest:fetchRequest1 error:&error];

[fetchRequest1 release];

任何帮助将不胜感激。谢谢

4

2 回答 2

1

您可以将排序描述符数组直接应用于 ,NSFetchRequest并且可以进一步将其获取限制设置为 1。这将创建以下代码:

NSFetchRequest *fetchRequest1 = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event"  inManagedObjectContext:[self managedObjectContext]];

[fetchRequest1 setEntity:entity];

NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"accidentDate" ascending:NO];
[fetchRequest1 setSortDescriptors:[NSArray arrayWithObject:dateSort]];
[dateSort release], dateSort = nil;

[fetchRequest1 setFetchLimit:1];

NSManagedObject *latest = [[[self managedObjectContext] executeFetchRequest:fetchRequest1 error:&error] lastObject];

[fetchRequest1 release], fetchRequest1 = nil;
于 2010-01-02T16:30:37.540 回答
0

我会在没有谓词的情况下获取按 AccidentDate 排序的所有事件,并从数组中获取第一个事件。

于 2009-12-20T04:14:22.987 回答