Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 快速搜索控制器不断崩溃_Ios_Swift_Searchbar - Fatal编程技术网

Ios 快速搜索控制器不断崩溃

Ios 快速搜索控制器不断崩溃,ios,swift,searchbar,Ios,Swift,Searchbar,我刚开始学斯威夫特;我想添加一个搜索栏,允许用户搜索我的Firebase数据库中的数据。搜索栏已添加,但筛选搜索结果的代码不断崩溃,出现以下错误: 由于未捕获异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:节0中的行数无效。”。更新后现有节中包含的行数(0)必须等于更新前该节中包含的行数(0),加上或减去从该节中插入或删除的行数(1插入,0删除),加上或减去移入或移出该节的行数(0移入,0移出) 错误指向这条线 self.tableVie

我刚开始学斯威夫特;我想添加一个搜索栏,允许用户搜索我的Firebase数据库中的数据。搜索栏已添加,但筛选搜索结果的代码不断崩溃,出现以下错误:

由于未捕获异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:节0中的行数无效。”。更新后现有节中包含的行数(0)必须等于更新前该节中包含的行数(0),加上或减去从该节中插入或删除的行数(1插入,0删除),加上或减去移入或移出该节的行数(0移入,0移出)

错误指向这条线

self.tableView.insertRows(位于:[indepath(行:self.businessArray.count-1,节:0)],带有:UITableViewRowAnimation.automatic)


在表视图中插入行之前,必须将具有相同索引的项插入到数据源数组中


但是,在这种情况下,我建议将查询结果分配给数据源数组,并在表视图中插入行之前调用
reloadData()

,您必须在数据源数组中插入具有相同索引的项


但是在这种情况下,我建议将查询结果分配给数据源数组,并调用
reloadData()

,正如@vadian所说,您必须修改数据源以匹配您试图在UI中反映的内容。因此,如果我们要在
UITableView
中插入一行,那么您必须首先在要添加的行的相同索引处向数据源中插入一个对象。像这样:

// First modify datasource
let businessObjectToInsert = BusinessObject() // or whatever your class is
self.businessArray.append(businessObject)

// Then insert row into `UITableView`
self.tableView.insertRows(at: [IndexPath(row: self.businessArray.count-1, section: 0)], with: UITableViewRowAnimation.automatic)

正如@vadian所说,您必须修改您的数据源以匹配您试图在UI中反映的内容。因此,如果我们要在
UITableView
中插入一行,那么您必须首先在要添加的行的相同索引处向数据源中插入一个对象。像这样:

// First modify datasource
let businessObjectToInsert = BusinessObject() // or whatever your class is
self.businessArray.append(businessObject)

// Then insert row into `UITableView`
self.tableView.insertRows(at: [IndexPath(row: self.businessArray.count-1, section: 0)], with: UITableViewRowAnimation.automatic)

在调用
insertRows
之前,您需要向
businessArray
添加一个对象。在调用
insertRows
之前,您需要向
businessArray
添加一个对象。请问我将如何具体做到这一点,您是否有办法提供我不熟悉的
FireBase
,但是返回的
快照
应该包含过滤的项目。将数组分配给
businessArray
,并在表视图上调用
reloadData()
。请具体说明我将如何操作,是否有方法提供代码样本我不熟悉
FireBase
,但返回的
快照
应该包含过滤项。将数组分配给
businessArray
,并在表视图上调用
reloadData()