У меня есть массив идентификаторов: [INT]. Теперь я хочу, чтобы все объекты имели эти идентификаторы, но должны следовать порядку id в массиве ID.Сортировка по индексу массива с использованием Realm и NSPredicate
let IDs = [2, 6, 3, 4, 10, 9]
let predicate = NSPredicate(format: "id IN %@", IDs)
let objects = realm.objects(Item.self).filter(predicate)
Но, в конце концов, объекты были заказаны по-другому с идентификаторами. Есть ли способ сортировки этих объектов в правильном порядке?
Этот подход будет материализовать экземпляры Swift класса каждого отдельного объекта, соответствующие запросу для выполнения операции сортировки. Используйте 'Results.sorted (_ :)', чтобы избежать этой нетерпеливой материализации. Однако этот подход хорош (необходим даже) для применения алгоритма пользовательской сортировки, не поддерживаемого Realm. – jpsim
Спасибо. Это работает. Однако нам нужно будет материализовать все объекты перед использованием .sort. Результаты.sorted не способны обнаруживать порядок id в массиве ID. – mashix
Вопрос задан для пользовательского алгоритма сортировки, поэтому материализации объектов нет. – joern