2009-10-28 163 views
3

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

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

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

据我所知,我不能要求任何人在我的应用程序的广泛的代码中找到错误。我给你们的问题是:

  1. 有没有人遇到类似的错误?与sqlite相关?
  2. 您认为App store会否因此拒绝该应用?
  3. 有没有人有任何想法从哪里开始寻找错误?

我非常感谢任何回应!

+0

我有同样的问题。这有什么好运? – 2012-03-23 10:57:01

+0

你有没有机会使用Flurry分析SDK? – 2012-04-09 17:45:39

回答

2

当你说“它崩溃了”时,你在手机上获得的实际错误是什么?这是真正的崩溃,还是你得到了“未能及时发布错误?”

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

您的最后一个实例可能仍然对您的数据库有锁定,并且您的重新启动对该锁反应不佳。你有没有适当的错误处理?

+0

如果您回答自己的问题,那么其他已回答的人将不会收到通知。如果您想评论某些内容,请使用“添加评论”。要访问堆栈,请打开Xcode中的管理器(Cmd-Ctrl-O),选择设备,然后选择崩溃日志。 – 2009-11-02 14:06:49