【发布时间】:2019-07-04 11:13:00
【问题描述】:
我的应用程序正在使用 Realm 数据库来存储许多项目。使用 SearchBar,我搜索(不区分大小写)可能已经存储在数据库中的项目(如果没有,它将被添加)。项目名称通常包含瑞典字符之一,我的问题是在搜索瑞典字符(å、ä 或 ö)时,过滤器也会通过“a”或“o”,即搜索“ä”结果在 a/A、å/Å 和 ä/Ä。
extension ItemsVC: UISearchResultsUpdating {
func updateSearchResults(for searchController: UISearchController) {
if isFiltering() {
let predicate = NSPredicate(format: "name CONTAINS[cd] %@ AND NONE owners.name == %@", searchController.searchBar.text!, (category?.name)!)
items = realm.objects(Item.self).filter(predicate).sorted(byKeyPath: "name", ascending: true)
tableView.reloadData()
}
}
}
【问题讨论】:
-
CONTAINS[cd]中的 d 表示变音符号不敏感。CONTAINS[c]是否给出了你想要的结果? -
很遗憾没有。删除 d 也会删除特殊字符的不区分大小写。
-
@Stalle 你只删除了
d吗? -
当然。似乎特殊的瑞典字符不被视为同一个的大写。
标签: swift filter realm nspredicate character-set