应用程序在快速退出+重启时崩溃

时间:2009-10-28 12:09:10

标签: objective-c iphone cocoa-touch

我正在使用免费应用程序来计算挪威高中学生的成绩。不同的主题存储在sqlite数据库中。一切正常,除了一件事:如果我关闭应用程序并快速重启(比一秒快),它会崩溃。此外,只有在特定情况下关闭应用程序时才会发生这种情况,包括选择/检查UITableView中的主题(更改会立即存储在数据库中)。无论如何,如果我在重新启动应用程序之前等待超过一秒钟,它永远不会崩溃。

在控制台窗口中不会以任何方式跟踪错误。

Instruments在我的应用程序中发现了一些内存泄漏,但它们非常小(16字节)。我认为这不是崩溃的原因(但我会尽力阻止泄漏)。我也尝试删除并重新安装该应用程序,并打开和关闭iPod / iPhone。没有变化......

我知道我不能要求任何人在我的应用程序的扩展代码中找到错误。我向你们提出的问题是:

  1. 你们有没有遇到过类似的错误?与sqlite有关吗?
  2. 您认为App Store会拒绝该应用吗?
  3. 有谁知道从哪里开始寻找错误?
  4. 我非常感谢任何回应!

1 个答案:

答案 0 :(得分:2)

当你说“它崩溃了”时,手机堆栈中的实际错误是什么?这是一次真正的崩溃,还是“未能及时发布错误?”

在iPhone上,应用程序的主线程可能会在仍然运行后台非延迟线程时终止。从这个意义上讲,尽管所有声称你无法在后台运行,但你实际上可以......持续几秒钟。当主线程终止时,你回到Springboard,如果它没有自行终止,最终操作系统将终止你的进程。你在后台线程上管理你的任何sqlite工作吗?你是否创建了任何非延迟线程(这通常需要pthreads,所以如果你不知道,你可能不是,但sqlite可能;请检查仪器)。

您的上一个实例可能仍然锁定了您的数据库,并且您的重新启动对该锁定没有很好的反应。您是否在打开时有正确的错误处理?