Closed 3lvis closed 7 years ago
@3lvis this issue is still present with this branch. See below.
2016-12-06 15:26:30.380 Basic-ObjC[62802:16560723] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 7 beyond bounds [0 .. 6]'
*** First throw call stack:
(
0 CoreFoundation 0x0000000107d1234b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010777321e objc_exception_throw + 48
2 CoreFoundation 0x0000000107c43f1b -[__NSArrayM objectAtIndex:] + 203
3 UIKit 0x000000010923637d -[_UIFlowLayoutSection frameForItemAtIndexPath:] + 155
4 UIKit 0x00000001091d1eb5 -[UICollectionViewFlowLayout _frameForItem:inSection:usingData:] + 159
5 UIKit 0x00000001091cba72 -[UICollectionViewFlowLayout layoutAttributesForItemAtIndexPath:usingData:] + 561
6 UIKit 0x00000001091cbd23 -[UICollectionViewFlowLayout layoutAttributesForItemAtIndexPath:] + 406
7 Form 0x0000000107056c8c -[FORMLayout layoutAttributesForDecorationViewOfKind:atIndexPath:] + 796
8 Form 0x0000000107057ae6 -[FORMLayout layoutAttributesForElementsInRect:] + 1526
9 UIKit 0x00000001091ecbe0 __45-[UICollectionViewData validateLayoutInRect:]_block_invoke + 241
10 UIKit 0x00000001091ec4e3 -[UICollectionViewData validateLayoutInRect:] + 2984
11 UIKit 0x00000001091ef7ae -[UICollectionViewData layoutAttributesForCellsInRect:validateLayout:] + 170
12 UIKit 0x0000000109189d59 -[UICollectionView _computePrefetchCandidatesForVisibleBounds:futureVisibleBounds:prefetchVector:notifyDelegateIfNeeded:] + 134
13 UIKit 0x0000000109189cc7 -[UICollectionView _computePrefetchCandidatesForVelocity:notifyDelegateIfNeeded:] + 214
14 UIKit 0x0000000109189bdd -[UICollectionView _prefetchItemsForVelocity:maxItemsToPrefetch:invalidateCandidatesOnDirectionChanges:] + 934
15 UIKit 0x0000000109192ef7 -[UICollectionView layoutSubviews] + 717
16 UIKit 0x000000010890a344 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237
17 QuartzCore 0x000000010d0cfcdc -[CALayer layoutSublayers] + 146
18 QuartzCore 0x000000010d0c37a0 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
19 UIKit 0x00000001088f83e4 -[UIView(Hierarchy) layoutBelowIfNeeded] + 1507
20 UIKit 0x00000001091ab498 -[UICollectionView _performBatchUpdates:completion:invalidationContext:tentativelyForReordering:animator:] + 252
21 UIKit 0x00000001091ab379 -[UICollectionView _performBatchUpdates:completion:invalidationContext:tentativelyForReordering:] + 91
22 UIKit 0x00000001091ab2fb -[UICollectionView _performBatchUpdates:completion:invalidationContext:] + 74
23 UIKit 0x00000001091ab250 -[UICollectionView performBatchUpdates:completion:] + 53
24 Form 0x0000000107035efa -[FORMDataSource insertItemsAtIndexPaths:] + 378
25 Form 0x000000010703cea9 __38-[FORMDataSource startProcessTargets:]_block_invoke + 649
26 Form 0x000000010706430f +[FORMTarget filteredTargets:filtered:] + 1199
27 Form 0x000000010703cbf0 -[FORMDataSource startProcessTargets:] + 160
28 Foundation 0x00000001072b8f48 __NSFireDelayedPerform + 417
29 CoreFoundation 0x0000000107ca4964 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
30 CoreFoundation 0x0000000107ca45f3 __CFRunLoopDoTimer + 1075
31 CoreFoundation 0x0000000107ca417a __CFRunLoopDoTimers + 250
32 CoreFoundation 0x0000000107c9bf01 __CFRunLoopRun + 2065
33 CoreFoundation 0x0000000107c9b494 CFRunLoopRunSpecific + 420
34 GraphicsServices 0x000000010c8dfa6f GSEventRunModal + 161
35 UIKit 0x0000000108845f34 UIApplicationMain + 159
36 Basic-ObjC 0x0000000106f7fd4f main + 111
37 libdyld.dylib 0x000000010b1fd68d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Damn, @jeffleeismyhero. 🤷♂️
This resolves the crash presented in issue #559. I think is likely because the layout is computing different states at the same time, first the scrolling, then the enabling and then processing the targets, adding some delay fixes the issue. Also, it seems like
UIView performWithoutAnimation
wasn't working as it should, so I had to update that as well.This crash only occurs on iOS 10.