0
사용자가 가장 최근에 본 (날짜 표시) 객체 20 개를 찾아야합니다. 각 객체에는 dateVisited라는 핵심 데이터 모델의 속성이 있습니다. 사용자가 특정 객체를 볼 때 dateVisited 속성에는 현재 날짜 스탬프가 지정됩니다.코어 데이터에서 상위 20 개 객체 만 가져 오는 방법
그래서 가장 최근에 본 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];
코드는 순서에 3,000 개체의 집합을 반환하고, 나는 그러나 첫 번째 (20)을 표시, 모든 3,000 개체를 정렬 그리고 그렇게 할 시간이 걸립니다. 정렬이 20 개의 '상위'발생 객체를 추적하고 그 객체가 이미 상위 20 개에 없으면 각 객체를 도중에 버렸을 때 훨씬 효율적입니다.
그럼 내 질문은 다음과 같습니다. 가져 오기/정렬 작업을 수행하는 상위 20 개 개체 만 추적 할 수 있습니까?
감사합니다. –