2010-07-29 62 views
2

我几乎完成了我的第一个应用程序,但我得到一个奇怪的EXC_BAD_ACCESS,几乎发生在所有的时间。EXC_BAD_ACCESS on lauching,随机bug

这里是跟踪:

#0 0x02adba93 in objc_msgSend 
#1 0x07022e00 in ?? 
#2 0x028bcbcd in _CFAutoreleasePoolPop 
#3 0x0003999f in -[NSAutoreleasePool release] 
#4 0x002e9f84 in _UIApplicationHandleEvent 
#5 0x0310dafa in PurpleEventCallback 
#6 0x02961dc4 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ 
#7 0x028c2737 in __CFRunLoopDoSource1 
#8 0x028bf9c3 in __CFRunLoopRun 
#9 0x028bf280 in CFRunLoopRunSpecific 
#10 0x028bf1a1 in CFRunLoopRunInMode 
#11 0x002e2226 in -[UIApplication _run] 
#12 0x002edb58 in UIApplicationMain 
#13 0x0000282e in main at main.m:14 

奇怪的是,有时在App正常启动,所以我真的不understant发生了什么事情和一些帮助将是巨大的:)

+0

看起来像一个释放/ autorelease问题。您可能已经发布了一个对象,该对象稍后也会被自动释放。 – 2010-07-29 08:03:07

+0

这是否与NSZombieEnabled? – willcodejavaforfood 2010-07-29 08:04:58

回答

3

你已经过度释放了一个对象,所以当autorelease池被清除时,这是一个无效的操作。

僵尸调试它:

然后再次运行你的应用程序,并检查控制台 - 它应该告诉你什么对象被过度释放。

+0

就像我想的那样。现在没有,NSZombieEnabled功能,不错的一个:) – 2010-07-29 08:10:02

+0

嗯,谢谢我不知道这个功能,真的很有用。谢谢 !! – Clem 2010-07-29 08:29:21

+0

这确实帮了我。谢谢!! – AechoLiu 2011-03-09 05:52:03