我为iPhone开发了一款应用程序,一切顺利。今天我决定为即将推出的iOS 7发布做好准备,应用程序按预期工作,直到我在iPhone 5上试用它。每当它崩溃时它会抛出一些exc_bad_access代码。 它不会在运行iOS 6.1的模拟器或iPad上崩溃。 我希望你们能帮助我。
顺便说一句,我每次都会得到不同的exc_bad_access代码,但这是其中之一。 http://gyazo.com/43716488eb120e44e74f76cd4d659076
答案 0 :(得分:2)
您有与线程相关的竞争条件。注意它在线程7中是如何崩溃的?竞争条件将在不同的硬件上表达不同,因为时间可能会大不相同。
tableView:cellForRowAtIndexPath:
是一个必须在主线程上运行的UIKit方法。在你的情况下,它在线程7上运行,这本身可能是你的问题的原因。我怀疑你正在做一些事情,比如在后台线程上调用reloadData
。
请注意,您还要直接访问ivars而不是使用访问器。这往往会使线程问题更难以追踪和管理。您应该始终使用访问者,除了init
,访问者内部和dealloc
之外。