Iphone sqlite3数据库已被锁定

Iphone sqlite3数据库已被锁定,iphone,sqlite,Iphone,Sqlite,我正在用sqlite创建一个应用程序。我正在数据库上执行各种任务插入、更新、删除、选择 为此,我每次都打开数据库,然后使用sqlite3\u step()执行查询,结果出来后使用sqlite3\u finalize()和sqlite3\u close()方法。它在大多数情况下运行良好。我不知道它发生的时间,但有时我的数据库会被我遵循的相同过程锁定,有时它会工作 我需要解锁数据库,以便即使在任何情况下,我的数据库被锁定,然后我可以解锁它或Plz指导我,如果我可以通过代码检查我的数据库被锁定,以便我

我正在用sqlite创建一个应用程序。我正在数据库上执行各种任务
插入、更新、删除、选择

为此,我每次都打开数据库,然后使用
sqlite3\u step()
执行查询,结果出来后使用
sqlite3\u finalize()
sqlite3\u close()
方法。它在大多数情况下运行良好。我不知道它发生的时间,但有时我的数据库会被我遵循的相同过程锁定,有时它会工作

我需要解锁数据库,以便即使在任何情况下,我的数据库被锁定,然后我可以解锁它或Plz指导我,如果我可以通过代码检查我的数据库被锁定,以便我可以用资源数据库替换我的数据库

我也在使用webservice,所以我没有数据丢失的问题。
如果我的数据库被锁定,或者有任何方法可以解锁数据库,那么更换数据库是否有意义。

在开始时打开数据库一次。并在AppWillterminate函数的末尾将其关闭。在每个数据库函数中打开和关闭它只会消耗时间

就数据库锁而言,当某个应用程序仍在使用它,而另一个应用程序试图访问它时,它就会被锁定

这可能是您的应用程序,也可能是firefox的sqlite manager插件

我曾经遇到过同样的问题,我所做的是

  • 已禁用sqlite加载项中的选项,该选项将记住以前打开的数据库

  • 重新启动xcode,模拟器

  • 制作sqlite文件(桌面)的副本,将其从项目中删除,然后再次从桌面添加到项目中

  • 最后一个解决方案听起来很奇怪,但我当时很生气


    我希望这能对您有所帮助。

    但为什么每次都要打开和关闭数据库呢?在启动此项目时,我对sqlite数据库不太熟悉。现在我怀疑我是否只打开它一次,然后在应用程序终止时关闭它,这可能会导致我的代码出现任何问题。这个问题在设备中,所以我认为没有任何其他应用程序正在使用它或类似的程序。这些链接可以帮助您了解问题。检查一下这个:在你读“应用程序”的地方,你应该读“进程/线程”。