我正在尝试使用swift实现UISearchBar,我可以找到的所有示例都与搜索字符串数组有关。
使用一个随机的例子,假设我有一个名为“Car”的类,属性是“manufacturer”和“model”
我有很多车叫“车”
我想实现一个搜索栏,通过比较字符串和Cars数组中的'manufacturer'属性来过滤结果。
到目前为止,我可以连接有关筛选结果数组、表视图结果等的所有其他内容。我无法绕过的一点是:
filteredManufacturers = Cars.filter({ (text) -> Bool in
let tmp: NSString = text as NSString
let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
返回范围。位置!=未找到
})
我的问题是我不知道如何只引用类的属性。如果我输入:
filteredManufacturers = Cars.manufacturers.filter....
有一个问题是,没有所谓的财产'制造商'的'汽车'和如果。我改了。并尝试引用。“汽车。制造商”这一类财产显然没有全部。要过滤的实际汽车数据。有人有什么建议吗。
我想一种方法是将所有制造商的数据复制到一个数组中,我可以搜索这个,但是我必须参考。引用其类的初始索引,以及。好像伤了很久。
最佳答案
首先,你的原始方法可以不用Objective-CNSString
的东西重写:
filteredManufacturers = Cars.filter {
$0.lowercased().contains(searchText.lowercased())
}
制造商的搜索方式非常相似:
filteredManufacturers = Cars.filter {
$0.manufacturer.lowercased().contains(searchText.lowercased())
}
(假设在
manufacturer
中有一个名为String
的Car
类型的实例属性)关于swift - Swift UISearchbar如何搜索类的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58572260/