搜索时出现搜索栏错误

问题描述:

当我在搜索栏中执行搜索时,正在加载视图(从服务器加载数据)我得到的错误是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() 
} 
+0

你在哪里给'auxiliar'赋值?我猜'numberOfRowsInSection'在异步网络请求可能返回之前被调用,因此'auxiliar'没有设置并且具有默认的'nil'值。 –

+0

很好的问题。请检查我的问题! – leo0019

+0

那么商店如何定义和分配价值? –

声明auxiliar为空数组。

var auxiliar = [Shops]() 

auxiliar.counttableView(_:, numberOfRowsInSection:)访问时,tableView将是空的。然后,当您获取数据并调用searchBar(_:,textDidChange:)时,将再次设置auxiliar。重新加载表格时,将显示新数据。