2012-12-04 21 views
6

Qui è il mio errore:UICollectionView Asserzione fallimento in deleteItemsAtIndexPaths

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

sto chiamando in questo modo:

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

Perché sta succedendo, tutte le idee?

+0

Hai qualche soluzione? – CRDave

risposta

7

Rimuove anche l'articolo dal modello? Quindi, ad esempio, se il numero di righe, sezioni e il contenuto che presentano è preso da un dizionario di array le cui chiavi rappresentano le sezioni e ogni matrice le righe, quindi se si elimina una riga con deleteItemsAtIndexPaths si è responsabili di aggiornare il dizionario di conseguenza. UICollectionView non lo farà per te.

+0

Nel mio caso, * non sta aggiornando * il modello * prima * il 'deleteItemAtIndexPath' era il * motivo dell'errore * –

+0

questo ha funzionato per me. dovrebbe essere contrassegnato come la soluzione – stanley

5

nota che si sta tentando di eliminare indice 1 dalla sezione 1. Sia indice e la sezione inizia da 0.

ho fatto in questo modo:

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

Verificare che il panorama collezione non è occupato con qualcos'altro quando chiami deleteItemsAtIndexPaths:. Ho riscontrato lo stesso problema con insertItemsAtIndexPaths: metodo, e si è scoperto che era causato da un bug nel mio codice - Ho chiamato [myCollectionView insertItemsAtIndexPaths:] subito dopo aver chiamato [my collectionView reloadData]. Quindi, al momento di chiamare insertItemsAtIndexPaths: la mia vista raccolta stava ricaricando i suoi dati. Dopo aver corretto questo errore, il problema con l'asserzione non funziona.

Problemi correlati