如何通过匹配coreData

时间:2019-11-05 14:17:42

标签: swift xcode core-data nspredicate nssortdescriptor

我有一个coreData fetchRequest,它根据用户输入的searchString过滤结果。

我希望结果以与searchString相同的前缀开头,而不是以字母顺序或任何其他顺序开头。

例如,如果我的数组是:

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

并且我在搜索栏中输入的searchString是“ r”,我希望“ raspberry”成为第一个返回的结果,然后是“ cherry”和“ durian”

对于上述情况,我的谓词是:

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,以便对结果进行排序,以将搜索字符串作为优先级的前缀

0 个答案:

没有答案