UICollectionView Crash when using delegate publishers and UICollectionViewDiffableDataSource
TheCoordinator opened this issue · 0 comments
TheCoordinator commented
Describe the bug
The UICollectionView crashes internally when using the delegate publishers such as didSelectItemPublisher
and using UICollectionViewDiffableDataSource
as dataSource.
To Reproduce
- Setup a collectionView with
UICollectionViewDiffableDataSource
as dataSource. - Add an example publisher such as
didSelectItemPublisher
- Update dataSource snapshot
- See crash log
Expected behavior
Shouldn't crash
Device:
- OS: [e.g. iOS 14.5]
- CombineCocoa 0.3.0
Additional context
Crash Log:
2021-08-04 11:21:52.800547+0100 App[6134:8095978] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack:
(
0 CoreFoundation 0x0000000113473fba __exceptionPreprocess + 242
1 libobjc.A.dylib 0x0000000112bc1ff5 objc_exception_throw + 48
2 CoreFoundation 0x00000001134f2523 _CFThrowFormattedException + 194
3 CoreFoundation 0x00000001134f0457 -[__NSArrayM insertObject:atIndex:].cold.2 + 0
4 CoreFoundation 0x000000011337114a -[__NSArrayM insertObject:atIndex:] + 1130
5 Runtime 0x000000010f64a5b8 unpackInvocation + 1410
6 Runtime 0x000000010f649fdd -[ObjcDelegateProxy forwardInvocation:] + 45
7 CoreFoundation 0x0000000113478259 ___forwarding___ + 825
8 CoreFoundation 0x000000011347a7a8 _CF_forwarding_prep_0 + 120
9 UIKitCore 0x000000012ddf07cd -[UICollectionView _notifyDidEndDisplayingCellIfNeeded:forIndexPath:] + 194
10 UIKitCore 0x000000012de07b5a -[UICollectionView _reuseCell:notifyDidEndDisplaying:] + 1471
11 UIKit 0x0000000150773878 -[UICollectionViewAccessibility _reuseCell:notifyDidEndDisplaying:] + 77
12 UIKitCore 0x000000012de17202 -[UICollectionView _updateAnimationDidStop:finished:context:] + 1838
13 UIKitCore 0x000000012de169e4 __102-[UICollectionView _updateWithItems:tentativelyForReordering:propertyAnimator:collectionViewAnimator:]_block_invoke.2110 + 77
14 libdispatch.dylib 0x0000000119698578 _dispatch_call_block_and_release + 12
15 libdispatch.dylib 0x000000011969974e _dispatch_client_callout + 8
16 libdispatch.dylib 0x00000001196a7b3f _dispatch_main_queue_callback_4CF + 1152
17 CoreFoundation 0x00000001133e18f8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
18 CoreFoundation 0x00000001133dc169 __CFRunLoopRun + 2781
19 CoreFoundation 0x00000001133db1a7 CFRunLoopRunSpecific + 567
20 GraphicsServices 0x0000000122ed0d85 GSEventRunModal + 139
21 UIKitCore 0x000000012e7184df -[UIApplication _run] + 912
22 UIKitCore 0x000000012e71d39c UIApplicationMain + 101
23 libswiftUIKit.dylib 0x0000000118266f42 $s5UIKit17UIApplicationMainys5Int32VAD_SpySpys4Int8VGGSgSSSgAJtF + 98
24 App 0x000000010ef3c40a $sSo21UIApplicationDelegateP5UIKitE4mainyyFZ + 122
25 App 0x000000010ef3c37c $s4App11AppDelegateC5$mainyyFZ + 28
26 App 0x000000010ef3c4f9 main + 41
27 libdyld.dylib 0x0000000119727bbd start + 1
)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
terminating with uncaught exception of type NSException