Ios 集合视图批更新崩溃
我间歇性地收到带有以下错误的Ios 集合视图批更新崩溃,ios,objective-c,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
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内部的?您可以添加一个符号断点,并将-[UICollectionViewUpdate\u ComputeItemUpdate]
作为值。无论何时调用该方法,您都能够导航堆栈跟踪,并(希望)看到崩溃前最后调用的代码行
这种方法的缺点是,你可能会遇到很多没有崩溃的停顿,但它会让你知道它是从哪里来的。在代码中找到崩溃源后,取消设置断点并更改一个值或设置与单元格相关的内容,直到导致崩溃发生
这通常是我从Flurry的崩溃报告中跟踪崩溃的方法。半年前您已经问过这个问题,如果您找到了跟踪这些类型错误的解决方案,我将非常感谢您的分享:)看到传递给PerformBatchUpdate的块可能会很有趣。我注意到,在尝试将两个项目添加到同一位置并移动到同一位置时,此处会出现崩溃。这里似乎发生了实际的内存损坏。如果它不在这里崩溃,它会在以后崩溃。