私は、コントローラに表示されていないコレクションビュー上viewDidDisppearの後にperformBatchUpdatesが原因でエラーが発生しましたか?
performBatchUpdates({
self.insertItemsAtIndexPaths(indexPathes)
},
completion: {
_ in
})
を呼び出しています!上にプッシュした別のビューコントローラが既に存在します。
これは、次のエラーが発生:
Invalid update: invalid number of items in section 0. The number of items contained in an existing section after the update (12) must be equal to the number of items contained in that section before the update (12), plus or minus the number of items inserted or deleted from that section (12 inserted, 0 deleted) and plus or minus the number of items moved into or out of that section (0 moved in, 0 moved out).'
をしかしビューは、それは完璧に動作します表示されている間、私はperformBatchUpdatesを呼び出していますので、もしそれが全く真実ではありません。
何が起こったのですか?
編集: 私がreloadDataを呼び出すと、ビューが表示されていない間は正常に動作することに注意してください。それについてリンゴは何を言いますか?
どうすればこの例外をキャッチできますか。だから私はユーザーreloadData代わりにすることができますか?
EDIT: 私はperformBachUpdatesを呼び出す前に、次を印刷している:ここ
print("visibleCells().count :" + String(self.visibleCells().count))
print("dataModel count:" + String(self.dataArray.count))
は、私が得たものである:
visibleCells().count :0
dataModel count:12
例外では真実ではないことを意味!
コレクションビューに挿入する項目に合わせてデータモデルを更新する必要があります。 – rmaddy
@rmaddyあなたのcmmentに感謝します。 insetItemIndexPathを呼び出す前にデータモデルを更新しました。 – david
@rmaddyこれは素晴らしい作業ですが、ビューコントローラが表示される必要があります! – david