2017-02-09 2 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)、プラスまたはマイナス の数と等しくなければなりませんそのセクションから挿入または削除された行(insert 0が削除されています)、そのセクション(0が移動され、0が移動された)の内外に移動された行の数がプラスまたはマイナスになります。

1つのアイテムしか挿入しようとしていませんが、実際には22個挿入しています。私のデータソースは正しく更新されています。

+1

'newIndexPaths'の内容を確認してください。そこには22個の異なるインデックスパスがありますか、または1回のインデックスパスは22回ありますか? – Paulw11

答えて

0

@ Paulw11それはまさに問題でした。私はそれを捉えていないとは信じられません。私がindexPathを作成していたとき、私は作成プロセスをループしていたので、行の値を増やすのを忘れてしまった。ありがとう!

関連する問題