【发布时间】:2018-04-13 06:58:39
【问题描述】:
我有一个这样的数组模型:
class Assess_order_med_model
{
var name:String!
var id:String!
init(name:String!,id:String!) {
self.name = name
self.id = id
}
}
我想根据“id”过滤我的数组。为此我正在这样做。
var filteredData = [Assess_order_med_model]()
override func viewDidLoad() {
super.viewDidLoad()
table_View.dataSource = self
table_View.delegate = self
searchBar.delegate = self
searchBar.showsCancelButton = false
self.table_View.allowsSelection = false
let array_vale1 = Assess_order_med_model.init(name: "New York, NY", id: "1")
self.array_model.append(array_vale1)
filteredData = array_model
}
现在我正在像这样过滤我的数组
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filteredData = searchText.isEmpty ? array_model : array_model.filter({(dataString: String) -> Bool in
// If dataItem matches the searchText, return true to include it
return dataString.range(of: searchText, options: .caseInsensitive) != nil
})
table_View.reloadData()
}
但它给了我这样的错误:Assess_order_model 类型的值没有成员范围。 任何人都可以帮助我在过滤时做错了什么吗?
【问题讨论】:
-
如果您正在搜索名称,您可以这样做:
array_model.filter { $0.name.contains(searchStr) }。如果您正在寻找基于id的搜索/过滤器,那么您也可以像这样过滤,只需使用$0.id
标签: ios swift uitableview uisearchbar