【问题标题】:iPhone UITableView bug??? - sectionIndexTitlesForTableView seems to cause it?iPhone UITableView 错误??? - sectionIndexTitlesForTableView 好像是什么原因造成的?
【发布时间】:2010-10-18 10:21:22
【问题描述】:

我在当前项目中遇到了这个超级奇怪的错误。为了了解发生了什么,我将所有内容缩小到最简单的应用程序,可以在此处下载:

download simple example here(此处没有自动释放提到的索引数组)

似乎方法:sectionIndexTitlesForTableView 与它有关,因为未实现时不会出现错误。但是超级奇怪的事情:当它卡住并且您摇晃设备时它会再次响应。如果您下载了上面的代码,在应用程序中您必须按下按钮,向下滚动返回,而它仍在滚动并再次按下它,它肯定会在几次后崩溃。如果不只是重新启动它,然后再试一次。它最终会崩溃。

【问题讨论】:

    标签: iphone uitableview scroll navigation


    【解决方案1】:

    当你弹出 tableview 控制器时,你是否取消了任何可能附加到它的 viewController 的委托?`我发现这是过去 iOS 的各种组件产生一些“有趣”效果的原因

    【讨论】:

    • 在 dealloc 方法中,我将 tableview 的数据源和委托设置为 nil...
    【解决方案2】:

    当您在 Xcode 中调试您的设备上的应用程序时,您能做到这一点吗?如果是这样,一旦它挂起,点击 Xcode 中的暂停按钮。这会将调试器打断到您正在运行的进程中。然后,您可以检查调试器的 Threads 区域中的每个线程,以查看调用堆栈的位置。这会告诉你你的代码挂在哪里。

    【讨论】:

    • 是的,我能做到。我已经尝试过了。但我不知道这告诉我什么,因为我对目标 c 的幕后发生的事情知之甚少。但我真的将我的代码缩小到最简单的应用程序(甚至比上面提供的示例代码简单得多),我仍然得到错误。我不知道可能出了什么问题。如果这是一个苹果虫,那将是一个非常可怕的。
    • 好的,您可以从 Xcode 复制调用堆栈并将其粘贴到您的问题描述中吗?这将有助于我们帮助您进行诊断。
    • 好的。我上传了一些截图。不确定我们到底需要什么。但希望应该作为一个起点。
    【解决方案3】:

    您的自动发布的“NSMutableArray *indexes”可能正在被 UITableView 引用而不是保留。我建议尝试在 UITaleView 的初始化期间创建数组,并在 UITableView 的 dealloc 上释放它,或者如果它需要是动态的,则在每次调用 sectionIndexTitlesForTableView 时释放并重新创建它。这样你就知道只要 UITableView 试图访问这个方法返回的指针,它就会一直存在。

    【讨论】:

    • 您好,感谢您检查代码。但那不是它。我将上传另一个没有自动发布的版本。同样的错误。你可以自己试试。干杯
    【解决方案4】:

    原来这是一个 iOS 错误。我还没有提交。但我会尽快更新这篇文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2021-12-30
      • 1970-01-01
      • 2022-06-22
      • 2021-07-04
      • 2020-04-05
      • 1970-01-01
      相关资源
      最近更新 更多