我有一个uitableview
,我尝试通过insertRowsAtIndexPaths
函数附加它。
如果我只是将数据添加到数据源数组中,uitableview
很好地附加,但是我很难通过上面提到的函数插入它。
这是我的代码
func insertData(){
// appending arrays
answersdict.append(answersmain[answertitle1]![0]) // count 1
resultanswers2d.append(carsmain[answertitle1]!) // count 3
self.tableView.reloadData()
// inserting rows
self.tableView.beginUpdates()
let insertedIndexPathRange = 0..<carsmain[answertitle1]!.count + 1 // total count 4
var insertedIndexPaths = insertedIndexPathRange.map { NSIndexPath(forRow: $0, inSection: 1) }
self.tableView.insertRowsAtIndexPaths(insertedIndexPaths, withRowAnimation: .Fade)
self.tableView.endUpdates()
我的部分数据源计数为2(因此第1部分存在)和numberOfRows
- 它等于resultanswers2d[section].count + 1
,这给了我4
所以我试图在已经附加的数组中插入4行,该数组在该部分中有4个可能的行,但我经常遇到错误,如
更新后现有部分中包含的行数 (4)必须等于该部分中包含的行数 在更新(4)之前,加上或减去插入的单元格(插入4个,删除0个)
或者如果我努力
malloc_error
卡住了。需要任何见解。谢谢。
答案 0 :(得分:3)
删除该行以重新加载表格。
insertRowsAtIndexPaths
相应地更新了表格。
数据源和表中的插入次数和位置必须匹配。
答案 1 :(得分:1)
根本不要致电self.tableView.reloadData()
。 beginUpdate和endUpdate部分应该足够了。
更新:
此外,请记住beginUpdate
endUpdate
块中的insert the new section。