Jeśli zmienię układ UICollectionView podczas zmiany orientacji, po kilku obrotach otrzymuję EXC_BAD_ACCESS
.EXC_BAD_ACCESS na setCollectionViewLayout
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
UICollectionViewLayout *layout = [[UICollectionViewFlowLayout alloc] init];
self.myCollectionView.collectionViewLayout = layout; // This causes EXC_BAD_ACCESS after a few rotations
}
Czy to błąd UICollectionView
? Czy robię coś złego? Jeśli to błąd, czy istnieje sposób na zmianę całego układu podczas zmiany orientacji?
Zauważyłem, że ten sam problem jest wymieniony w tym answer. Debugowanie za pomocą NSZombies nie generuje dodatkowych informacji.
Czy kiedykolwiek to rozumiesz? Mam podobny problem ze zmianą układu, używając '[collectionView setCollectionViewLayout: layout animated: animated]'. Śledzenie wygląda następująco: '* wątek # 1: tid = 0x1c03, 0x01780098 libobjc.A.dylib \ objC_msgSend + 12, stop powód = EXC_BAD_ACCESS (kod = 1, adres = 0xc0000000) ramka # 0: 0x01780098 libobjc.A. dylib \ 'objc_msgSend + 12 ramki # 1: 0x008f6ed5 UIKit \' - [_setLayoutAttributes UICollectionViewData: atGlobalItemIndex:] + 62 ramki # 2: 0x008f80f6 UIKit \ '__45- [UICollectionViewData validateLayoutInRect:] _ block_invoke_0 + 1004' – Gujamin
prawdopodobnie związane http : //stackoverflow.com/questions/15786084/uicollectionview-bad-acces-on-uicollectionviewdata-setlayoutattributesatlo, również wciąż otwarte. –
Czy istnieje UIDynamicAnimator przy użyciu tego układu, przez przypadek? (** Edycja: ** Przypuszczam, że nie, jeśli został opublikowany 10 miesięcy temu.) –