Как я могу отсортировать fetchRequest по префиксу, соответствующему строке поиска в coreData - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть coreData fetchRequest, который фильтрует результаты на основе searchString, введенного пользователем.

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

Например, если мой массив:

["apple", "banana", "cherry", "durian", "raspberry"]

и моя строка поиска, введенная в строку поиска, - "r", я бы хотел, чтобы "малина" была первым возвращенным результатом, а затем "вишня "и" дуриан "

Для вышеизложенного мой предикат:

request.predicate = NSPredicate(format: "item.itemName CONTAINS[cd] %@", self.searchString)

На данный момент мой sortDescriptor:

let prefixSort = ???
let nameSort = NSSortDescriptor(key: "item.itemName", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare(_:)))
request.sortDescriptors = [prefixSort, nameSort]

Не уверен, как ввестиprefixSort, чтобы результаты были отсортированы по префиксу searchString с приоритетом

...