Я заинтересован в сортировке 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)
]
)