Есть ли способ сортировки данных из CoreData с помощью пользовательского дескриптора сортировки? - PullRequest
0 голосов
/ 24 апреля 2020

Я заинтересован в сортировке NSFetchRequest особым образом. В моем приложении пользователь может ввести поисковый запрос. Я хотел бы вернуть результаты, отсортированные по элементам, начиная с введенного ими запроса, за которым следуют остальные элементы, которые просто содержат запрос.

Например: пользователь вводит "de". Я бы хотел, чтобы результаты были упорядочены таким образом, чтобы все результаты, начинающиеся с «de», были первыми, а затем оставшиеся столбцы, содержащие «de».

Вот что я хотел бы например, результаты будут выглядеть так:

Deathless Behemoth
Deathmark
Deathmark Prelate
Deathmask Nezumi
Deathmist Raptor
Deathpact Angel
Acid Web Spider
Careful Consideration
Hell-Bent Raider
Jhovall Rider
Living Death

Я использовал NSSortDescriptors для других типов поиска в моем приложении, но, похоже, нет способа использовать его для этой конкретной c цели .

Вот NSP-предикат, который я использую, чтобы в настоящее время получить желаемый результат, но не в указанном порядке c, который я ищу:

let namePredicate = NSCompoundPredicate(
    type: .or,
    subpredicates: [
        NSPredicate(format: "name BEGINSWITH[cd] %@", name),
        NSPredicate(format: "name CONTAINS[cd] %@", name)
    ]
)
...