我正在使用一款计算挪威高中生成绩的免费应用。不同的主题存储在 sqlite 数据库中。一切正常,除了一件事:如果我关闭应用程序并快速重新启动(比一秒钟快),它会崩溃。此外,只有当我在涉及在 UITableView
中选择/检查主题的特定情况下关闭应用程序时才会发生这种情况(更改会立即存储在数据库中)。无论如何,如果我在重新启动应用程序之前等待超过一秒钟,它永远不会崩溃。
在控制台窗口中没有以任何方式跟踪错误。
Instruments 在我的应用程序中发现了一些内存泄漏,但它们非常小(16 字节)。我认为这不是崩溃的原因(但我会尽力阻止泄漏)。我还尝试删除并重新安装该应用程序,以及打开和关闭 iPod/iPhone。没有变化...
我明白我不能要求任何人在我的应用程序的大量代码中找出错误。我想问你们的问题是:
- 你们中有人遇到过类似的错误吗?与 sqlite 相关?
- 您认为应用商店会因此拒绝该应用吗?
- 有人知道从哪里开始查找错误吗?
非常感谢任何回复!
最佳答案
当您说“它崩溃了”时,您在电话堆栈中遇到的实际错误是什么?这是真正的崩溃,还是您收到“未能及时启动错误?”
在 iPhone 上,应用程序的主线程可能会终止,同时仍在运行后台非分离线程。从这个意义上说,尽管所有声称您不能在后台运行,但您实际上可以……几秒钟。当主线程终止时,您返回到 Springboard,如果它没有自行终止,操作系统最终将终止您的进程。您是否在后台线程上管理任何 sqlite 工作?您是否创建了任何非分离线程(这通常需要 pthreads,所以如果您不知道,您可能不是,但 sqlite 可能;检查 Instruments)。
您的最后一个实例可能仍然锁定您的数据库,并且您的重新启动对该锁定 react 不佳。您是否对打开的错误进行了适当的处理?
关于objective-c - 应用程序在快速退出+重启时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636857/