2012-12-04 31 views
6

這裏UICollectionView斷言失敗是我的錯誤:在deleteItemsAtIndexPaths

*** Assertion failure in -[PSUICollectionView _endItemAnimations], /SourceCache/UIKit_Sim/UIKit-2372/UICollectionView.m:2801 

我打電話這樣說:

[self.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:1 inSection:1]]]; 

這究竟是爲什麼,任何想法?

+0

你有什麼解決辦法嗎? – CRDave

回答

7

你是否從模型中移除了物品?因此,舉例來說,如果它們的行數,節數和內容取自一個數組字典,這些數組的鍵代表段,每個數組都是行,那麼如果您使用deleteItemsAtIndexPaths刪除了一行,那麼您有責任更新字典。 UICollectionView不會爲你做。

+0

在我的情況下,在* deleteItemAtIndexPath之前*沒有更新*模型*是錯誤原因* –

+0

這對我有用。應該被標記爲解決方案 – stanley

5

注意,你正試圖從部分1.兩個指數和部分刪除索引1從0開始

我沒有這樣說:

NSMutableArray *forms; // datasource item data for all the cells 
int indexToDelete; // Set to the index you want to delete 

... 

[self.collectionView performBatchUpdates:^(void){ 
    [forms removeObjectAtIndex:indexToDelete]; // First delete the item from you model 
    [self.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:indexToDelete inSection:0]]]; 
      } completion:nil]; 
1

檢查您的收藏看法是不旺當你調用deleteItemsAtIndexPaths時,還有其他的東西。 我遇到了與insertItemsAtIndexPaths:方法相同的問題,事實證明它是由我的代碼中的一個錯誤引起的 - 我在調用[my collectionView reloadData]後立即調用了[myCollectionView insertItemsAtIndexPaths:]。因此,在調用insertItemsAtIndexPaths時:我的集合視圖正在重新加載其數據。解決了這個錯誤之後,斷言失敗的問題就消失了。

相關問題