搜索时出现搜索栏错误
问题描述:
当我在搜索栏中执行搜索时,正在加载视图(从服务器加载数据)我得到的错误是auxiliar为零。搜索时出现搜索栏错误
var isSearch = false
var auxiliar : [Shops]!
var searchActive: Bool = false
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if searchActive
{
return auxiliar.count
}
return shops.count
}
数据进来JSON到的TableView
这里是当我分配附配
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
auxiliar = shops.filter { $0.shopname.range(of: searchText, options: .caseInsensitive, range: nil, locale: nil) != nil}
if searchText == "" || searchBar.text == nil {
auxiliar = shops
}
tableView.reloadData()
}
答
声明auxiliar
为空数组。
var auxiliar = [Shops]()
当auxiliar.count
由tableView(_:, numberOfRowsInSection:)
访问时,tableView
将是空的。然后,当您获取数据并调用searchBar(_:,textDidChange:)
时,将再次设置auxiliar
。重新加载表格时,将显示新数据。
你在哪里给'auxiliar'赋值?我猜'numberOfRowsInSection'在异步网络请求可能返回之前被调用,因此'auxiliar'没有设置并且具有默认的'nil'值。 –
很好的问题。请检查我的问题! – leo0019
那么商店如何定义和分配价值? –