【问题标题】:App crashes on iPhone but not simulator or iPad?应用程序在 iPhone 上崩溃但不是模拟器或 iPad?
【发布时间】:2013-09-14 16:44:00
【问题描述】:

我为 iPhone 开发了一个应用程序,一切顺利。今天我决定为即将推出的 iOS 7 做准备,并且该应用程序按预期运行,直到我在我的 iPhone 5 上尝试它。每当它崩溃时,它都会抛出一些 exc_bad_access 代码。 它不会在模拟器或运行 iOS 6.1 的 iPad 上崩溃。 我希望你们能帮助我。

顺便说一句,我每次都会得到不同的 exc_bad_access 代码,但这是其中之一。 http://gyazo.com/43716488eb120e44e74f76cd4d659076

【问题讨论】:

  • 您是否启用它在 iOS 7 上运行?
  • 是的,我做到了。该应用程序本身运行良好,该应用程序的其他功能也可以正常工作,只有一两件事会崩溃。 (这2个功能在模拟器/ipad上工作。)
  • 请发帖; i) 回溯(最好是文本)和 ii) 相应代码作为问题主体的一部分。

标签: iphone ios


【解决方案1】:

您有与线程相关的竞争条件。注意它是如何在线程 7 中崩溃的?竞争条件在不同的硬件上会以不同的方式表现出来,因为时间可能会有很大的不同。

tableView:cellForRowAtIndexPath: 是一个必须在主线程上运行的 UIKit 方法。在您的情况下,它在线程 7 上运行,这本身可能就是您的问题的原因。我怀疑你在后台线程上调用reloadData

请注意,您还可以直接访问您的 ivars,而不是使用访问器。这往往会使线程问题更难追踪和管理。除了init、访问器内部和dealloc 之外,您应该始终使用访问器。

【讨论】:

  • 你是一个非常聪明的人..或者是经验丰富的程序员! ;) Nomatter,你说得对,罪魁祸首是后台线程上的一个动作!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2015-11-25
  • 2013-03-02
  • 2016-10-12
  • 2011-12-26
相关资源
最近更新 更多