我们目前正在使用Xamarin的monotouch开发iPhone应用程序,并使用SQLite存储数据。我们使用最新版本的SQLite组件(https://github.com/praeclarum/sqlite-net)。
不幸的是,过去几周我们遇到了一些奇怪的问题。一切都按设计工作,但过了一段时间(可能在15-30分钟跟踪,生成GPS插入到数据库中),SQLite返回每个数据库访问带有I / O错误:
SQLite.SQLiteException: IOError
磁盘空间可用,文件的R / W权限也不是问题,因为前30分钟一切正常...
经过长时间的谷歌研究,我认为原因可能与此处相同:
CoreData: error: (14) I/O error for database
也许这里的问题是相关的: Sqlite disk I/O error on iphone 5
作为一种解决方法,我们现在通过设置journal_mode = OFF(http://www.sqlite.org/wal.html)来停用WAL(http://www.stevemcarthur.co.uk/blog/post/some-kind-of-disk-io-error-occurred-sqlite/),但这不是正确的解决方案。
这引出了我的问题:是否有人在那里遇到了同样的问题并找到了真正的解决方案?我的假设是正确的,与iOS 7.0的WAL会导致这个问题吗?或者可能还有其他原因?