我正在尝试追踪一个错误,我有一个看起来像这样的崩溃日志:
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系列是提及我的应用程序的任何线程中唯一的位置。
可能导致崩溃的指针是什么?
谢谢!
答案 0 :(得分:0)
该应用正在尝试调用不再存在的内容。并且调用是通过另一个runloop,通过计时器或类似的东西触发的,但已经被释放。
因此,您可能想要检查是否有任何计时器设置在计时器触发之前可能已经消失的对象。
答案 1 :(得分:0)
与其他答案一样,这是因为僵尸对象。正在调用已经解除分配实例的对象。
尝试使用Zombie乐器并在方案中启用僵尸对象来定位崩溃。这应该可以帮助您确定哪个对象被解除分配以及导致崩溃的方法。大多数情况下,这在使用委派时会发生。