0
我需要查找用戶最近查看(日期標記)的20個對象。每個對象在覈心數據模型中都有一個名爲dateVisited的屬性。當用戶查看特定的對象時,dateVisited屬性被分配當前的日期標記。如何從核心數據中僅提取前20個對象
所以,我有一個'Recent'視圖,顯示了最近查看的20個對象。我目前使用下面的代碼來獲取和排序數據。
[fetchRequest setEntity:[NSEntityDescription entityForName:@"object" inManagedObjectContext:self.moc]];
predicate = [NSPredicate predicateWithFormat:
@"objectNumber contains[cd] %@", searchTerm];
[fetchRequest setPredicate:predicate];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateVisited" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSFetchedResultsController *controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:self.moc
sectionNameKeyPath:nil
cacheName:nil];
[fetchRequest release];
代碼返回集合3000個的對象,以便和我展示了第20位。然而,它的排序的所有3000個對象,並需要一定的時間這樣做。如果排序只跟蹤20個「頂部」遇到的對象,並且如果該對象已經不在目前遇到的前20箇中,那麼將會更有效率。
所以我的問題是這樣的:有沒有辦法做一個抓取/排序,只跟蹤運行的前20個對象?
謝謝,這很好! –