1

我正在尝试追踪一个错误,并且我有一个看起来像这样的崩溃日志:

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 行是所有线程中唯一提到我的应用程序的地方。

任何可能导致这样的崩溃的指针?

谢谢!

4

2 回答 2

0

该应用程序正在尝试调用不再存在的东西。并且调用是通过计时器或类似的东西从另一个运行循环触发的,但已经被释放。

因此,您可能想检查是否在对象上设置了任何计时器,这些计时器在计时器触发之前可能会消失。

于 2012-11-02T19:13:54.340 回答
0

就像其他答案所暗示的那样,这是因为僵尸对象。正在对实例已被释放的对象进行调用。

尝试使用僵尸工具并在方案中启用僵尸对象来定位崩溃。这应该可以帮助您确定哪个对象被释放以及哪个方法导致了崩溃。大多数情况下,这发生在使用委托时。

这应该会有所帮助:https ://developer.apple.com/library/ios/recipes/Instruments_help_articles/FindingMessagesSenttoDeallocatedObjects/FindingMessagesSenttoDeallocatedObjects.html

于 2015-06-03T12:11:34.917 回答