Как отсортировать заказ результата в реальном времени по списку?

Я получаю объекты Realm с именем «DictObj» по списку свойств «index» следующим образом:

NSArray *listIDs = @[@1000,@0,@100,@4]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"index IN %@",listIDs]; self.fetchedResults = [DictObj objectsInRealm:realm withPredicate:predicate]; 

Я просто получаю результаты, но это автоматический заказ по первичному ключу «index», я хочу сохранить его в порядке «listIDs». Поэтому я создаю sortDescriptor и пытаюсь выполнить его сортировку, как показано ниже, но сбой с ошибкой: «Завершение приложения из-за неперехваченного исключения» NSInvalidArgumentException », reason: '- [Свойство NSSortDescriptor]: непризнанный селектор, отправленный в экземпляр 0x"

 NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:NO comparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { NSNumber *num1 = [NSNumber numberWithInteger:(NSInteger)obj1]; NSNumber *num2 = [NSNumber numberWithInteger:(NSInteger)obj2]; NSInteger listIndex1 = [listIDs indexOfObject:num1]; NSInteger listIndex2 = [listIDs indexOfObject:num2]; return listIndex1 < listIndex2; }]; self.fetchedResults = [[DictObj objectsInRealm:realm withPredicate:predicate] sortedResultsUsingDescriptors:@[sortDescriptor]]; //Model @interface DictObj : RLMObject @property NSInteger index; @property NSString *name; @end 

Как настроить сортировку порядка результата по списку в Realm?

-[RLMResults sortedResultsUsingDescriptors:] принимает NSArray<RLMSortDescriptor *> . В коде вы передаете NSArray<NSSortDescriptor *> . RLMSortDescriptor и NSSortDescriptor – это разные классы с разными интерфейсами, поэтому исключение вы видите.

В настоящее время RLMResults может быть непосредственно отсортирована по значению свойства. Чтобы сортировать по вычисленным заказам, например, после того, как вам понадобится заполнить NSArray содержимым RLMResults , RLMResults . Добавление поддержки для этого в RLMResults отслеживается в выпуске # 1265 в репозитории Realm's GitHub.

  • Дополнительные свойства Realm.io
  • Проблема с обновлением объектов Realm
  • LinkingObjects один для многих в Realm
  • Realm Swift: обновление объекта внутри закрытия
  • Царство: правильный способ сделать, обновить, удалить операции из фонового потока и получить результаты по основному потоку
  • Первичная миграция первичного ключа
  • Невозможно открыть область по пути
  • Отделить объект от царства?
  • Значок уведомлений области в фоновом потоке
  • Обновление объекта в Realm
  • Как использовать случайные и ограничения в области
  • Interesting Posts

    Предупреждение. Представление контроллеров вида на отдельных контроллерах просмотра не рекомендуется.

    Связь iOS Inter App с использованием схем URL

    iTunes Connect «Адрес Sanitizer Detected» после отправки

    Как сделать первый запуск руководства для iPhone App с Xcode

    Как проверить идентификатор устройства iPhone-симулятора?

    iOS: Как я могу получить HTTP 401 вместо -1012 NSURLErrorUserCancelledAuthentication

    Как добавить UIImage с UIGesture к большинству просмотров в приложении.

    IOS Animation не работает с моим блоком анимации

    Кордова – подключение к прокси-серверу

    Аутентификация мобильного устройства

    Как я могу получить доступ к вводному наложению?

    Вычисление широковещательного адреса в Objective-C

    iOS – Продвинутая анимация со свистом W / Velocity Swipe

    Установка NSForegroundColorAttributeName в атрибутной строке сдвигает текст вниз на iOS 6

    Как запустить команду терминала в быстром скрипте? (например, xcodebuild)

    Давайте будем гением компьютера.