Сортировать массив извлеченных объектов из базовых данных по количеству проверок в Objective-C - PullRequest
0 голосов
/ 26 февраля 2019

Я бы хотел отсортировать массив Обзоров, извлеченных из Базовых данных, по количеству просмотров данной книги.Объект является обзорами, а объект обзора имеет атрибут 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 Ответ

0 голосов
/ 26 февраля 2019

Вы можете установить дескриптор сортировки NSFetchRequest.

request.sortDescriptors = @[sortDescriptor]

Прочтите документацию для получения дополнительной информации.https://developer.apple.com/documentation/coredata/nsfetchrequest/1506262-sortdescriptors

...