UICollectionView崩溃

时间:2015-02-25 03:50:28

标签: ios objective-c uicollectionview

我有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:

1 个答案:

答案 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