Ios 如何调试CellForRowatineXpath中的运行时崩溃

Ios 如何调试CellForRowatineXpath中的运行时崩溃,ios,objective-c,uitableview,crash,crashlytics,Ios,Objective C,Uitableview,Crash,Crashlytics,我正在使用Crashlytics在我的应用程序发布后捕获崩溃 我试图调试的问题之一涉及tableview数据源,该数据源偶尔会导致崩溃,因为它在tableview:CellForRowatineXpath: 然而,调试这一点被证明是相当困难的,因为崩溃报告没有给我任何关于哪个数据源类是问题的线索(我可以看到!)!整个堆栈跟踪似乎包含对UIKit/CoreFoundation的引用,并且没有引用任何我自己的代码 由于这是一个相当大的应用程序(有40多个类在整个应用程序中实现CellForRowa

我正在使用Crashlytics在我的应用程序发布后捕获崩溃

我试图调试的问题之一涉及tableview数据源,该数据源偶尔会导致崩溃,因为它在tableview:CellForRowatineXpath:

然而,调试这一点被证明是相当困难的,因为崩溃报告没有给我任何关于哪个数据源类是问题的线索(我可以看到!)!整个堆栈跟踪似乎包含对UIKit/CoreFoundation的引用,并且没有引用任何我自己的代码


由于这是一个相当大的应用程序(有40多个类在整个应用程序中实现CellForRowatineXpath)——除了手动挑选每个类之外,我还能做些什么来尝试找出问题的原因吗?这个问题只出现过几次,但我不知道重现的步骤。

好吧,您可以将自己的断言添加到数据源中,以捕获返回的空单元格。当然,快速扫描40个数据源类并生成可疑类的列表不需要那么长时间(因为他们的数据流不是直截了当的,并且相对不受idjit限制)。请提供您的
tableView:cellForRowAtIndexPath:
方法,我们可以查看一下。根据我的经验,最可能的问题是,在更新视图时,您的数据源正在更改。
NumberOfSectionsTableView:
tableView:NumberOfRowInSection:
在相应的单元格生成之前不久被调用在
tableView:cellforrowatinedexpath:
中调用。但是,这不是100%同步的,并且有可能返回单元格/节计数,然后返回数组(或任何数据源)更改,导致请求的数据在请求时不再存在。@Dima-问题是,他大约有40个。@HotLicks我看到了。对我来说,Crashlytics日志的价值得到了极大提高的一点是,我开始在每个
视图中添加
CLS\u LOG()在我的应用程序中。即使只是这样做,你也可以通过你的应用程序跟踪用户的移动(前提是你确实使用了多个视图控制器)。然后,找到正确的表视图就像检查上次记录的崩溃行一样简单。