应用程序崩溃在iPhone但不是模拟器或iPad?

时间:2013-09-14 16:44:00

标签: iphone ios

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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