集合视图批量更新崩溃

时间:2014-06-04 18:10:39

标签: ios objective-c

我间歇性地收到Crashlytics报告并出现以下错误:

Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0000000e
 raw

libobjc.A.dylib 
objc_msgSend + 5
1
UIKit   
-[UICollectionViewUpdate _computeItemUpdates] + 1588
2
UIKit   
-[UICollectionViewUpdate initWithCollectionView:updateItems:oldModel:newModel:oldVisibleBounds:newVisibleBounds:] + 254
3
UIKit   
-[UICollectionView _endItemAnimations] + 6904
4
UIKit   
-[UICollectionView performBatchUpdates:completion:] + 386

我该如何调试?崩溃似乎是UICollectionView的内部。这是否意味着崩溃是Apple SDK内部的?

1 个答案:

答案 0 :(得分:0)

您可以添加带有-[UICollectionViewUpdate _computeItemUpdates]的符号断点作为值。无论何时调用该方法,您都能够导航堆栈跟踪并(希望)在崩溃之前查看代码的哪一行是最后一次调用。

这种方法的缺点是你可能会遇到许多没有发生崩溃的暂停,但它会让你知道它来自哪里。一旦在代码中找到崩溃的来源,取消设置断点并更改值或设置与单元格相关的内容,直到可以导致崩溃发生。

这通常是我从Flurry的崩溃报告中追踪崩溃的方法。半年前你问这个问题,如果你找到了一个跟踪这些类型的bug的解决方案,如果你分享了我会很感激:)