【发布时间】:2019-08-06 14:55:59
【问题描述】:
我正在使用核心数据查询生成,对于每次读取视图上下文数据我执行以下操作
- 固定上下文
- 读取(获取请求)
- 取消固定上下文
一切都按预期正常工作,但有时我会收到以下错误:
错误:SQLCore dispatchRequest:异常处理请求:,sqlite3_snapshot_open 失败,userInfo 为 { NSSQLiteErrorDomain = 769; } CoreData:错误:SQLCore dispatchRequest:异常处理请求:,sqlite3_snapshot_open 失败,userInfo 为 { NSSQLiteErrorDomain = 769; }
在代码下方固定/取消固定上下文:
// MARK: Query generation
func pinContext() {
do {
context.reset()
try context.setQueryGenerationFrom(NSQueryGenerationToken.current)
} catch {
fatalError("Context pinning:\(error)")
}
}
func unpinContext() {
do {
try context.setQueryGenerationFrom(nil)
} catch {
fatalError("Context unpinning:\(error)")
}
}
sqlite.org 网站的错误代码 (769) SQLITE_ERROR_SNAPSHOT 状态:
使用 sqlite3_snapshot_open() 接口尝试在数据库的历史版本上启动读取事务时,可能会返回 SQLITE_ERROR_SNAPSHOT 结果代码。如果历史快照不再可用,则读取事务将失败并返回 SQLITE_ERROR_SNAPSHOT。仅当使用 -DSQLITE_ENABLE_SNAPSHOT 编译 SQLite 时,才可能出现此错误代码。
现在,我该如何处理或防止 Core 数据中出现此错误?
【问题讨论】:
-
你想出解决方案了吗?谢谢!