Swift 搜索时出现搜索栏错误

Swift 搜索时出现搜索栏错误,swift,uitableview,Swift,Uitableview,当我在视图加载(从服务器加载数据)时在搜索栏中执行搜索时,我得到的错误是auxiliar为nil var isSearch = false var auxiliar : [Shops]! var searchActive: Bool = false func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { if searchActive { r

当我在视图加载(从服务器加载数据)时在搜索栏中执行搜索时,我得到的错误是auxiliar为nil

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]()

表视图(:,numberofrowsinssection:)
访问
辅助计数时,
表视图将为空。然后,当您获取数据并调用
搜索栏(u:,textDidChange:)
时,将再次设置
auxiliar
。重新加载表格时,将显示新数据。

您在哪里为
auxiliar
赋值?我猜在异步网络请求返回之前调用了
numberOfRowsInSection
,因此没有设置
auxiliar
,并且具有默认的
nil
值。问得好。请检查我的问题!!那么shops是如何定义和赋值的呢?我认为应该将
auxiliar
声明为
var-auxiliar=[shops]()
如果希望它是可选的,那么应该这样做:
var-auxiliar:[shops]?=[Shops]()
那么显然你必须将
auxiliar.count
更改为
auxiliar?.count