使用 sqlite 多次访问 sqlite 数据库 swift iOS

Multiple access to sqlite database using sqlite swift iOS

这是我的场景,

我在登录我的应用程序时有多个请求,其中一个响应包含 10,000 多条记录。

我在我的项目中使用 SQLite.swift。

如果用户不注销或不超过 1 个任务(如从数据库搜索或检索数据),则一切正常。如果发生任何一种情况,应用程序就会卡住或崩溃。

我正在使用事务进行批量插入,但是当我尝试访问另一个相同的 table 数据时,应用程序会冻结,直到一切都完成。

我尝试使用多个连接来插入数据库,但如果另一个连接正在使用数据库,那么它会被锁定并且应用程序会崩溃

fatal error: 'try!' expression unexpectedly raised an error: database is locked: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-703.0.18.1/src/swift/stdlib/public/core/ErrorType.swift, line 54

try DataManager.con.transaction {

            for index in 0 ... (entity.count - 1) {
            try DataManager.con.run(table.insert(
                    Latitude <- entity[index]["Latitude"].string,
                    Longitude <- entity[index]["Longitude"].string
                ))
            }
        }

这里DataManager.con是单例对象

请帮忙。

sqlite.swift 无法创建并发连接。

所以我将我的主数据移动到另一个数据库并为其创建一个单独的连接。

我也加了

do{
// Start transaction
// code
// Commit transaction
}
catch {
}

为了在用户注销或关闭应用程序时处理错误,Transaction 也将有助于保持部分数据保存

感谢所有帮助过的人。