滚动表格视图时,iOS 应用程序随机崩溃,不确定如何处理引发的错误

Posted

技术标签:

【中文标题】滚动表格视图时,iOS 应用程序随机崩溃,不确定如何处理引发的错误【英文标题】:iOS app randomly crashes when scrolling through a table view, not sure how to handle error thrown 【发布时间】:2013-05-05 19:59:41 【问题描述】:

我只有一个简单的表格视图,它使用AFNetworking 从 twitter 下载内容,然后将其显示在单元格中。我在我的tableView 中启用了分页,有时当我在 iPad 上的数据之间滚动时,我的应用程序会冻结,我的 Xcode 屏幕会变成这样:

我是 Objective-C 的新手,但是在 Java 中,当这样的事情发生时,它会在我的代码中写出导致崩溃的所有方法和行号的列表。有没有办法让它做这样的事情?我对此一无所知,控制台只是空白。

【问题讨论】:

你确定它崩溃了吗?看起来您打开了异常断点。尝试 Product -> Debug -> Deactivate Breakpoints 看看它是否仍然发生。 我没有任何断点,但由于某种原因,当我滚动表格视图时,这只是随机发生。 你确实有断点;它正在打破一个。看到右边的“断点”了吗?如果你删除了所有的断点,但它仍在发生,请尝试重新启动 Xcode。 由于出现异常,它正在命中“虚拟”断点。异常发生在突出显示的函数中,这是某种字典初始化例程。如果你幸运的话,控制台有一个打印输出告诉你抛出异常的确切原因,但我猜你以某种方式搞砸了表格单元协议。您可以通过根据this answer 编辑您的main 例程来获取有关特定原因的更多信息(打印在控制台中)。 此外,库的例程可能能够自行处理异常,您的代码可能无需任何更改即可正常工作。例如,MPMoviePlayer 有时会抛出异常,然后自己处理它们。 (旁注:您也可以通过键入br del 来删除lldb 控制台中的所有断点。) 【参考方案1】:

检查此question。它将向您展示如何确定导致异常的原因。

与 Java 一样,您也可以添加 try 块及其对应的 catchfinally 块来处理异常。看到这个question。

【讨论】:

我不知道在哪里放置 try catch,我不知道我的程序的哪个部分导致我的应用程序崩溃。 我明白了。请先了解异常是关于什么的。在我看来,您正在尝试从 nil 数组创建字典。可能是您的 AFNetworking 回调返回 nil。请检查它是什么,我们可以从那里继续。【参考方案2】:

这是因为您使用的是字典,其中某个单元格的对象和键正在为您制造问题。检查您的 NSDictionary 数据。

【讨论】:

以上是关于滚动表格视图时,iOS 应用程序随机崩溃,不确定如何处理引发的错误的主要内容,如果未能解决你的问题,请参考以下文章

当单元格滚动回视图时表格崩溃

滚动时 UITableView 崩溃

滚动表格视图后点击选择行时如何修复崩溃?

滚动表视图然后突然单击搜索栏会导致应用程序崩溃?

未知异常和崩溃

ios - 滚动到结束时滚动视图缩放,如 Fancy