ios - 如何允许用户根据两个条件进行搜索
问题描述
我正在尝试实现一个搜索栏,用户可以在其中根据姓名或职业搜索某人。我在下面编写了函数,但应用程序在使用 OR 运算符的 return 语句处崩溃。是否有适当的方法来编写此函数以允许两种可能性 - 根据输入一个人的姓名或他们的职业来获得结果?注意:我使用 Firebase 来存储用户信息;姓名和职业有各自独立的字段和对应的值。
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchText.isEmpty || searchText == " " {
inSearchMode = false
tableView.reloadData()
} else {
inSearchMode = true
filteredUsers = users.filter({ (user) -> Bool in
return user.name.contains(searchText) || user.occupation.contains(searchText)
})
tableView.reloadData()
}
}
解决方案
尝试像这样编辑您的代码:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{
if searchText.isEmpty || searchText == " " {
inSearchMode = false
} else {
inSearchMode = true
filteredUsers = users.filter({ (user) -> Bool in
return (user.name?.contains(searchText) ?? true) || (user.occupation?.contains(searchText) ?? true)
})
}
tableView.reloadData()
}