我正在使用核心数据。 因为我最近访问过的项目如下。
//Create a fetch request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"Recent" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entityDescription];
//set Predicate to the fetch request
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"eyeTerm = %@",term];
[fetchRequest setPredicate:predicate];
NSError *error = nil;
//Create an Array Using fetch Request
NSMutableArray *recentsArray = [[self.managedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];
if([recentsArray count]==0) {
//Save to Recent
Recent *recent = [NSEntityDescription insertNewObjectForEntityForName:@"Recent" inManagedObjectContext:self.managedObjectContext];
recent.eyeTerm=term;
recent.lastviewed = [NSDate date];
recent.repeatCount = 0;
}
else {
//Increment the repeatCount of the recent object.
Recent *recent = [recentsArray objectAtIndex:0];
int countValue = [recent.repeatCount intValue];
countValue ++;
recent.repeatCount = [NSNumber numberWithInt:countValue];
NSLog(@"repeat count : %@",recent.repeatCount );
}
现在我想要前20名被访问的队友(重复计数)。 然后我可以将它们添加为收藏夹。 请告诉我如何找到前20名。
由于
答案 0 :(得分:1)
你需要一个排序描述符:
NSSortDescriptor *sortByRepeats = [NSSortDescriptor sortDescriptorWithKey:@"repeatCount" ascending:NO];
然后您可以在创建获取请求时使用它:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Recent" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entityDescription];
[fetchRequest setFetchLimit:20];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortByRepeats]];