Как отсортировать область Результаты на основе логического свойства - PullRequest
0 голосов
/ 30 мая 2018

Я пробовал сортировку по пользовательскому шаблону.Но так как он возвращает массив.Это не полезно.Поскольку мне нужно, чтобы возвращаемый тип был Результатом.

Пример: рассмотрите следующее:

class A:Object {
    dynamic var name: String = "abc"
    dynamic var isStrong: Bool = false
}

Теперь, как мне отсортировать вышеприведенное, что приведет к Результату

Я попробовал

realm.objects(a.self).sorted({ (o1, o2) -> Bool in
    return o1.isStrong && !o2.isStrong
})

Создает отсортированный массив.Но мне нужен объект realmResults.Любая помощь нужна.Спасибо.:)

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете использовать свойство bool для сортировки экземпляра Results, но вы не можете реализовать пользовательскую функцию сортировки, которая будет возвращать Results.Results поддерживает сортировку только на основе свойств экземпляра класса или на основе нескольких свойств экземпляра, если вы добавляете их в SortDescriptor.

Даже если вы не можете определить собственную логику сортировки, похоже, что ваша текущая логикареализует только нисходящую сортировку на основе одного свойства bool, поэтому вы можете достичь тех же результатов, используя встроенный в Realm метод sorted(byKeyPath:,ascending:).

realm.objects(A.self).sorted(byKeyPath: "isStrong",ascending: false)
...