Моя задача - получить объекты из базы в случайном порядке.
Сначала я генерирую случайные 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];
Поиск в интернете не дал мне никаких вменяемых результатов. Как бы вы решили эту проблему? Может, кто-то уже сталкивался и пришел к какому-то решению?