2012-12-07 20 views
11

dostaję ten błąd w moim app:UICollectionView: błąd potwierdzenia w - [UICollectionView _endItemAnimations]

*** błąd potwierdzenia w -[UICollectionView _endItemAnimations], /SourceCache/UIKit/UIKit-2372/UICollectionView.m:2801

zdarza się w moim sposobie -controllerDidChangeContent: na tej linii:

[self.collectionView performBatchUpdates:^{...}]; 

Czy ktoś wie co jest tego przyczyną? Mój kod jest ściśle oparty na https://gist.github.com/4440c1cba83318e276bb, a ja jestem na straconej pozycji.

Dzięki!

Odpowiedz

1

Założę się, że to z powodu, że

-controllerDidChangeContent 

jest nazywany w wątku tła wiele razy, i performBatchUpdates nadal pracuje, gdy inny wątek nazywa, dlatego prowadzi do niewłaściwego zachowania.

Solution - spróbuj owinąć go w @synchronized lub korzystających NSLocks

+0

To był zdecydowanie miano w głównym wątku, więc to nie był problem –

1

Problem nie zachodziło delegata FRC do zera na widok didDisappear.

+0

Cheers! To było to! Ustawienie FRC na zero w viewDidDisappear i ponowne przypisanie do siebie viewWillAppear rozwiązało mój podobny problem. –

+0

Co oznacza skrót FRC? : - | – Kalle

+0

@Kalle: FRC = Kontroler pobranych wyników – AlexR

9

Te typy asercji są zgłaszane jako wyjątki. Owiń aktualizacje wsadowe w usłudze try/catch i zrzuć opis wyjątku. Powie Ci dokładnie, co nie podoba ci się w rozmowie.

Innymi słowy:

@try 
    { 
     [self.collectionView performBatchUpdates:^{...}]; 
    } 
    @catch (NSException *except) 
    { 
     NSLog(@"DEBUG: failure to batch update. %@", except.description); 
    } 
+1

Ah Jestem na Swift ... jak niefortunny ... – Eonil

+0

Dobra opcja do debugowania. – kelin

Powiązane problemy