2017-02-09 62 views
0

我已經在指定的索引路徑刪除和重新加載行,但從不插入。這就是我要做的:UITableView插入行無效更新

func reloadTableView(newIndexPaths: [IndexPath]) { 
    print(dataSource.numberOfItems()) // prints 44 
    print(newIndexPaths.count) // prints 22 
    tableView.beginUpdates() 
    tableView.insertRows(at: newIndexPaths, with: .none) 
    tableView.endUpdates() // Crashes before this line 
} 

這裏是我收到的崩潰:

終止應用程序由於未捕獲的異常 「NSInternalInconsistencyException」,理由是:「無效的更新:無效 (2)中的行數。在更新之後(44),包含在 現有節中的行數必須等於更新前(22)加上或減去 的那部分中包含的 行的數量插入或從該部分刪除的行(1插入 0已被刪除)並加上或減去移入或移出 該部分(移入0,移出0)的行數。

什麼是沒有意義的是,它告訴我,只有1項試圖插入,但實際上我實際上插入22.我的數據源被正確更新,所以爲什麼這不工作?

+1

檢查'newIndexPaths'的內容 - 那裏有22個不同的索引路徑,還是有一個索引路徑22次? – Paulw11

回答

0

@ Paulw11是的!這正是問題,我不相信我沒有接受。當我創建我的indexPaths時,我過早忘記了增加行值,因爲我正在循環創建過程。謝謝!