数据库变为只读/已损坏

时间:2018-05-17 04:52:15

标签: ios objective-c sqlite

在我们的应用程序中,我们一直使用db3格式的加密sqlite数据库,该数据库从服务器下载,然后在上传处理后再次使用。该应用程序是实时的,并被多个用户使用。 有时,在一两个实例中非常间歇性地,数据库被破坏。用户必须丢弃整个应用程序并再次重新安装才能导致数据丢失。 只有当我们通过没有drop table命令检测到其中一个表从数据库中丢失时,才会在代码中的任何地方写入。

以前有人面对这个实例吗?知道为什么会这样吗?

请注意:该应用程序是用目标C编写的iPad应用程序。

1 个答案:

答案 0 :(得分:0)

主要原因之一: iDevices在它们实际耗尽之前关闭了很长时间。在您的设备关闭之前,您的应用程序会收到通知它将进入后台,然后收到通知它将要退出。如果您正确处理这两个通知(即在一个或另一个关闭所有SQLite连接),那么您不应该让数据库损坏。