在 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