gpt4 book ai didi

swift - 应用程序终止时如何消除核心数据sqlite警告消息?

转载 作者:可可西里 更新时间:2023-11-01 00:56:02 28 4
gpt4 key购买 nike

自从升级到 High Sierra 后,当我的核心数据应用程序终止时,我一直收到这些警告:

BUG IN CLIENT OF libsqlite3.dylib: database integrity compromised by API violation: vnode unlinked while in use

我没有看到任何实际问题,但我想知道是否应该在 applicationShouldTerminate() 中添加一些拆卸代码?

目前我所做的就是在返回 .terminateNow 之前保存上下文(如果它有更改)。

最佳答案

好的,我明白了。由于我的持久性存储包含敏感数据,因此我将加密磁盘上的文件作为关闭前的最后一步。但是,此时 Core Data 堆栈在关闭过程中仍在引用它们。

解决方案是在运行代码加密文件之前添加代码以删除持久存储。

    for store in managedObjectContext!.persistentStoreCoordinator!.persistentStores {
try! managedObjectContext!.persistentStoreCoordinator!.remove(store)
}

关于swift - 应用程序终止时如何消除核心数据sqlite警告消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48038534/

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