gpt4 book ai didi

iphone - 核心数据 SQLite 约束失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:48 25 4
gpt4 key购买 nike

当我尝试保存由 SQLite 支持的托管对象上下文时,有时会出错。

Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 256.)" UserInfo=0x280170 {NSFilePath=/var/mobile/Applications/7773BDBD-C502-4E21-9632-FA36A109BF6E/Documents/Social.sqlite, NSUnderlyingException=error during SQL execution : constraint failed}, { NSFilePath = "/var/mobile/Applications/7773BDBD-C502-4E21-9632-FA36A109BF6E/Documents/Social.sqlite";
NSUnderlyingException = "error during SQL execution : constraint failed";
}

二进制数据存储不会发生这种情况,只有当我修改特定实体并在短时间内多次保存上下文时才会发生。谁能建议一种调试方法?我用 sqlite3 查看了 .sqlite 文件,没有任何内容跳出。我不认为这是明确的核心数据约束违规(空必需值等),因为我没有发现二进制存储有任何错误。该程序很复杂(多个线程中的多个上下文),而且我无法在简单代码中复制错误以在此处显示。关于如何注销核心数据背后的 sqlite 实例有什么想法吗?

最佳答案

可能是这个保存发生在一个单独线程的上下文中,该线程不知道它所受约束的父关系(这就是它对我的读法)。

即父记录已保存到它的线程 3 上下文中,然后与主线程的上下文合并,但是子记录在线程 5(或 3 以外的任何线程)上下文中,它不知道对主线程所做的更改线程 3 的上下文。

将该记录插入到线程 5 上下文中会违反参照完整性和关系约束。在这种情况下,只能将记录直接插入到主线程的上下文中。

关于iphone - 核心数据 SQLite 约束失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com