{
address = "street1";
country = India;
state = uttarpradesh;
}
{
address = "street2";
country = US;
state = New York;
}
这是我的字典
我正在使用搜索栏作为过滤器
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
// Put your key in predicate that is "Name"
let filteredArray = MyDict.filter { ($0["address"] as! String).range(of: searchText!, ($0["country"] as! String).range(of: searchText!, ($0["state"] as! String).range(of: searchText!, options: [.diacriticInsensitive, .caseInsensitive]) != nil }
print ("array = \(filteredArray)")
if(filteredArray.count == 0){
searchActive = false;
} else {
searchActive = true;
}
self.TableView.reloadData()
}
答案 0 :(得分:0)
代替这个
let filteredArray = MyDict.filter { ($0["address"] as! String).range(of: searchText!, ($0["country"] as! String).range(of: searchText!, ($0["state"] as! String).range(of: searchText!, options: [.diacriticInsensitive, .caseInsensitive]) != nil }
使用&&
要求两个布尔表达式为true,或者使用||
来使表达式均为true。
因此,要检查县的地址OR(||
)是否包含文本,请使用
let filteredArray = MyDict.filter {
($0["address"] as! String).range(of: searchText!) != nil ||
($0["country"] as! String).range(of: searchText!) != nil
}
您可以添加具有更多||
和子表达式的更多支票
但是,根据您显示的字典,我不清楚Country是字符串。您需要将其转换为字符串形式的国家名称。
答案 1 :(得分:0)