iphone - 如何查找访问量最高的 20 个项目并将其添加为收藏夹

标签 iphone objective-c ios core-data nsfetchrequest

我正在使用核心数据。 因为我最近访问过的项目如下。

//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 名。

谢谢

最佳答案

您需要一个排序描述符:

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

关于iphone - 如何查找访问量最高的 20 个项目并将其添加为收藏夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8572164/

相关文章:

iphone - NSDateFormatter 忽略 24 小时时间格式

ios - 在 Windows 中为 PhoneGap 构建 iOS 签名 key

iphone - Jquerymobile 的 Tap-hold 在 Opera 移动小部件模拟器中不起作用

iPhone 开发者许可证

iphone - 在 UITableViewCell 中就地编辑文本?

ios - 创建核心数据托管对象很困难

ios - 将类型为 'UITableViewCell' 的值转换为自定义单元格

ios - 展开可选的 JSON 元素使应用程序崩溃

objective-c - 如何制作真正的私有(private)实例变量?

objective-c - NSJSONSerialization.JSONObjectWithData 浮点转换/舍入错误?