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

标签 objective-c iphone cocoa-touch

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

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

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

我明白我不能要求任何人在我的应用程序的大量代码中找出错误。我想问你们的问题是:

  1. 你们中有人遇到过类似的错误吗?与 sqlite 相关?
  2. 您认为应用商店会因此拒绝该应用吗?
  3. 有人知道从哪里开始查找错误吗?

非常感谢任何回复!

最佳答案

当您说“它崩溃了”时,您在电话堆栈中遇到的实际错误是什么?这是真正的崩溃,还是您收到“未能及时启动错误?”

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

您的最后一个实例可能仍然锁定您的数据库,并且您的重新启动对该锁定 react 不佳。您是否对打开的错误进行了适当的处理?

关于objective-c - 应用程序在快速退出+重启时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636857/

相关文章:

objective-c - iOS NSKeyedUnarchiver 调用单例 getter

iOS 11 - 在 VKSideMenu 中添加 subview 时崩溃

ios - 从 dispatch_async 修改时 UIView 不变

iphone - 使用包标识符打开应用程序

ios - 使用 Objective-C 从 url 检索 JSON

ios - 标签栏问题: -[UILayoutContainerView hash]: message sent to deallocated instance

ios - 使用推送通知服务扩展上传应用程序

iphone - 为表格中新添加的行设置动画

iphone - 使用 SQLite Manager 创建索引

ios - NSTimer暂停计时器