1

我有一个使用 Core Data 的应用程序。我可以在我的应用程序第一次在模拟器中构建和运行时保存和获取数据,但是,当我关闭应用程序,在模拟器中杀死它,然后重新运行它时,它会在 main.jsEXC_BAD_ACCESS内部崩溃。

如果我在模拟器上卸载应用程序并再次运行它,一切都会再次正常运行,直到我关闭应用程序并在发生同样的事情时再次打开它。

在将 Core Data 添加到我的应用程序之前,这种情况从未发生过,所以我假设它与此有关。下面是崩溃后的回溯。

杀死应用程序后我是否有可能没有正确“关闭”我的持久存储?任何帮助表示赞赏,谢谢。

(gdb) backtrace
#0  0x01700df5 in objc_release ()
#1  0x01701c60 in (anonymous namespace)::AutoreleasePoolPage::pop ()
#2  0x01490ed8 in _CFAutoreleasePoolPop ()
#3  0x00e959f9 in -[NSAutoreleasePool release] ()
#4  0x005a4f78 in _UIApplicationHandleEvent ()
#5  0x02154fa9 in PurpleEventCallback ()
#6  0x015301c5 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#7  0x01495022 in __CFRunLoopDoSource1 ()
#8  0x0149390a in __CFRunLoopRun ()
#9  0x01492db4 in CFRunLoopRunSpecific ()
#10 0x01492ccb in CFRunLoopRunInMode ()
#11 0x005a12a7 in -[UIApplication _run] ()
#12 0x005a2a9b in UIApplicationMain ()
#13 0x00001f29 in main (argc=1, argv=0xbfffebc4) at main.m:14
#14 0x00001ea5 in start ()

更新
已启用的僵尸对象和异常日志记录

2012-02-12 14:13:06.162 App[75491:207] *** -[_PFArray release]: message sent to deallocated instance 0x6d71960
(gdb) backtrace
#0  0x014c2ce2 in __forwarding_prep_0___ ()
#1  0x01700e10 in objc_release ()
#2  0x01701c60 in (anonymous namespace)::AutoreleasePoolPage::pop ()
#3  0x01490ed8 in _CFAutoreleasePoolPop ()
#4  0x00e959f9 in -[NSAutoreleasePool release] ()
#5  0x005a4f78 in _UIApplicationHandleEvent ()
#6  0x02154fa9 in PurpleEventCallback ()
#7  0x015301c5 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#8  0x01495022 in __CFRunLoopDoSource1 ()
#9  0x0149390a in __CFRunLoopRun ()
#10 0x01492db4 in CFRunLoopRunSpecific ()
#11 0x01492ccb in CFRunLoopRunInMode ()
#12 0x005a12a7 in -[UIApplication _run] ()
#13 0x005a2a9b in UIApplicationMain ()
#14 0x00001f29 in main (argc=1, argv=0xbfffeb64) at main.m:14
#15 0x00001ea5 in start ()
4

0 回答 0