Задать вопрос

(Core Data) Как сделать случайную сортировку в NSFetchedResultsController?

Моя задача - получить объекты из базы в случайном порядке.
Сначала я генерирую случайные id в массив NSArray и передаю их в качестве предиката:
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"(self.id IN %@)", randomIds];
// Пример содержимого массива randomIds (каждый раз разный):
// <__NSArrayM 0xd1cc4e0>(185,51,69,25,33,135,136,97,157,112,145,132,56,15,159,70,88,6,72,82)

Однако из-за того, что NSFetchedResultsController требует, чтобы в его FetchRequest'е обязательно были выставлены sortDescriptors, мои результаты всегда отсортированы:
NSSortDescriptor *sortingDescriptor = [[NSSortDescriptor alloc] initWithKey:@"id" ascending:YES];
fetchRequest.sortDescriptors = @[sortingDescriptor];
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                                                       managedObjectContext:context
                                                                         sectionNameKeyPath:nil
                                                                                  cacheName:nil];

Поиск в интернете не дал мне никаких вменяемых результатов. Как бы вы решили эту проблему? Может, кто-то уже сталкивался и пришел к какому-то решению?
  • Вопрос задан
  • 2488 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@s0L
Ну как вариант сделать поле в Entity, по которому будете сортировать и заполнять его случайными значениями
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы