我有UICollectionView
,我使用reloadItemsAtIndexPaths:@[path]
来更新它。但是,有时候,不常见的是,reloadItemsAtIndexPaths:@[path]
发生了崩溃。我一直在思考这个原因,但无法弄明白。
有人可以就此分享一些想法吗?例如如何缩小bug,添加什么日志消息等可能的原因呢?
跟踪显示:
Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0000000000000010
Thread : Crashed: com.apple.main-thread
0 libobjc.A.dylib 0x0000000192a63bd0 objc_msgSend + 16
1 UIKit 0x000000018714e88c -[UICollectionViewFlowLayout _updateDelegateFlags] + 88
2 UIKit 0x000000018714f83c -[UICollectionViewFlowLayout _fetchItemsInfoForRect:] + 304
3 UIKit 0x0000000186c2877c -[UICollectionViewFlowLayout prepareLayout] + 184
4 UIKit 0x0000000186b1296c -[UICollectionViewData _prepareToLoadData] + 76
5 UIKit 0x0000000186c8b17c -[UICollectionView _endItemAnimations] + 7780
6 MCompass 0x0000000100052270 reloadItemsAtIndexPaths:
答案 0 :(得分:0)
除了将委托和数据源设置为nil之外,请确保捕获闭包中的弱引用。 这是一个例子:
<accordion-group [heading]="model.type == 3 ? 'Heading 1' : 'Heading 2'">....<accordion-group>
这是通过Swift中的捕获列表解决的。见https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html#//apple_ref/doc/uid/TP40014097-CH20-ID56