我想按给定书的阅览次数对从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];
答案 0 :(得分:1)
您可以设置NSFetchRequest的排序描述符。
request.sortDescriptors = @[sortDescriptor]
阅读文档以获取更多信息。 https://developer.apple.com/documentation/coredata/nsfetchrequest/1506262-sortdescriptors