在 Objective-C 中按评论数量对核心数据中的 FetchedObjects 数组进行排序

Posted

技术标签:

【中文标题】在 Objective-C 中按评论数量对核心数据中的 FetchedObjects 数组进行排序【英文标题】:Sort Array of FetchedObjects From Core Data by Number of Reviews in Objective-C 【发布时间】:2019-02-26 16:21:05 【问题描述】:

我想按照给定书籍的评论次数对从 Core Data 获取的评论数组进行排序。实体是评论,评论实体具有属性 bookid。所以对于下表:

reviewid|bookid|review
1|1|This is a great novel...
2|1|Wonderful novel
3|2|Ok biography.
4|3|Horrible romance

我想返回一个顶部有 bookid=1 的数组,因为它有两条评论,而其他评论有一条。

如何使用 NSSortDescriptor 做到这一点?

我相信,您可以使用以下方法在获取后对数组执行此操作,但似乎应该可以直接在核心数据结果中执行此操作

NSEntityDescription * entity = [NSEntityDescription entityForName:@"Parent" inManagedObjectContext:self.managedObjectContext];

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:reviews];
NSError *error;
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:&error];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"bookid.@count" ascending:NO];
NSArray *descriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
NSArray *sortedArray  = [results sortedArrayUsingDescriptors:descriptors];

【问题讨论】:

【参考方案1】:

您可以设置 NSFetchRequest 的排序描述符。

request.sortDescriptors = @[sortDescriptor]

阅读文档以获取更多信息。 https://developer.apple.com/documentation/coredata/nsfetchrequest/1506262-sortdescriptors

【讨论】:

应该,但我不是 100% 确定。为什么不尝试让我们知道:) 它没有。不适合我或根据此:***.com/questions/20531319/…

以上是关于在 Objective-C 中按评论数量对核心数据中的 FetchedObjects 数组进行排序的主要内容,如果未能解决你的问题,请参考以下文章

从核心数据中按日期对 TableView 进行排序 - Swift4

如何在objective-c中按范围读取大文件?

在 MVC4 视图中按类别对订单进行分组

在 Swift/Objective-c 中按媒体类型自定义图像选择器

核心数据:在一对多关系中按日期属性排序

如何在drupal 7视图中按角色和用户ID显示用户评论