【发布时间】:2019-02-12 03:57:33
【问题描述】:
尝试访问 sqlite 数据库时,我在 ios 中不断崩溃。我的应用程序有后台同步过程,它尝试获取数据并将其存储在设备的 sql 数据库中。 一些在 IOS 设备中随机崩溃的方式。
其中一条日志是:
SQLite.SQLiteException: 损坏
SQLiteCommand.ExecuteNonQuery () /Users/vagrant/git/src/SQLite.cs:2334 SQLiteConnection.Execute(System.String 查询,System.Object[] args)/Users/vagrant/git/src/SQLite.cs:673 DataAccessBase.TruncateData (System.Boolean isSyncRestarted) /Users/yagnaios/Documents/Documents - Venu 的 MacBook Pro/Dev_Latest/TCRMobile/TCRMobile/DataAccess/DataAccessBase.cs:93 Home+d__16.MoveNext () /Users/yagnaios/Documents/Documents - Venu 的 MacBook Pro/Dev_Latest/TCRMobile/TCRMobile/Pages/Home.cs:307 ExceptionDispatchInfo.Throw () /Library/Frameworks/Xamarin.iOS.framework/Versions/11.6.1.3/src/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:152
该应用程序在android中运行良好,但在IOS中却是一个严重的问题,因为一旦数据库损坏,我们将无法使用该应用程序。
【问题讨论】:
-
您是否同时从多个线程写入数据库?这会不时给你损坏数据库。
-
是的,我正在从多个线程访问数据库,我们每 x 分钟运行一次同步,这使得很少的 http 调用和更新数据库中的数据。可能在同一时间 UI 正在更新。我们的应用程序需要这个功能,那么将 Sqlite 模式设置为序列化有助于解决这个问题吗?
标签: ios sqlite xamarin.forms xamarin.ios ios-sqlite