1

我的 iOS 应用程序崩溃时遇到问题。它使用核心数据(一个托管对象上下文)和 ARC,但也有一个单独的 SQLite 数据库,该数据库可能相当大。我收到了带有错误的崩溃报告:EXC_BAD_ACCESS,通常带有代码:KERN_INVALID_ADDRESS

问题是每次崩溃都发生在不同的地方(超过 30 个),而且通常这些地方通常不会在调用堆栈中包含我的任何代码。因此,我认为我做的事情根本上是错误的,这导致了这些错误的发生。

我试过打开 NSZombiesEnabled,但后来我发现错误没有发生。另外,我尝试过打开核心数据调试(级别 1),但我也发现了同样的情况。这些错误发生在一系列设备和操作系统中。崩溃报告显示剩余 3.0 到 148.0 mb 或 ram。所有的崩溃都在主线程上。

所以我的问题分为两部分:1)我找不到任何关于在核心数据项目中使用单独的 SQLLite 数据库存在问题的参考。这样做是否有任何潜在的陷阱以及如何避免这些陷阱的文档?

2)这种错误模式是否表明我可能做错了什么?

我已经添加了一个崩溃报告,它可能会揭示我的问题没有揭示的东西:

0
com.apple.main-thread Crashed
0   CoreFoundation  CFRetain + 19
1   CoreFoundation  __CFRunLoopDoTimer + 690
2   CoreFoundation  __CFRunLoopDoTimer + 690
3   CoreFoundation  __CFRunLoopRun + 1232
4   CoreFoundation  CFRunLoopRunSpecific + 356
5   CoreFoundation  CFRunLoopRunInMode + 104
6   GraphicsServices    GSEventRunModal + 74
7   UIKit   UIApplicationMain + 1120
8   cleverme    
main.m line 14
main 
4

0 回答 0