我正在尝试追踪一个bug,我得到了一个崩溃日志,看起来像这样:
0 libobjc.A.dylib objc_msgSend + 15
1 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14
2 CoreFoundation __CFRunLoopDoTimer + 272
3 CoreFoundation __CFRunLoopRun + 1232
4 CoreFoundation CFRunLoopRunSpecific + 356
5 CoreFoundation CFRunLoopRunInMode + 104
6 GraphicsServices GSEventRunModal + 74
7 UIKit UIApplicationMain + 1120
8 MyApp main.m line 21不幸的是,MyApp行是所有线程中唯一提到我的应用程序的地方。
有什么原因可能会导致这样的崩溃吗?
谢谢!
发布于 2015-06-03 20:11:35
正如其他答案所暗示的那样,这是因为僵尸对象。正在对已释放实例的对象进行调用。
尝试通过使用僵尸工具并在方案中启用僵尸对象来定位崩溃。这将帮助您确定哪个对象被释放,以及哪个方法导致崩溃。最常见的情况是,使用委托时会发生这种情况。
发布于 2012-11-03 03:13:54
这个应用程序正在尝试调用不再存在的东西。调用是从另一个运行循环触发的,通过计时器或类似的东西,但已经被释放。
因此,您可能希望检查在计时器触发之前可能已消失的对象上是否设置了任何计时器。
https://stackoverflow.com/questions/13200951
复制相似问题