2009-12-19 77 views
0

我有一個Entity「事件」,其中包含名爲「AccidentDate」的NSDate屬性。我試圖做一個抓取請求來抓取最近的'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]; 

任何幫助將不勝感激。謝謝

回答

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; 
0

我會抓取所有事件按AccidentDate排序,沒有謂詞,並抓住數組中的第一個。