我的 SwiftUI 应用程序与 Core Data + CloudKit 一起使用。我可以从 Mac 或 iPhone 将新条目保存到数据库中。该应用程序对所有设备使用完全相同的项目/代码库。
唯一的问题是我需要关闭应用程序并重新打开它才能查看从其他设备创建的任何新条目。我可以立即看到从同一设备创建的新条目,但它们不会出现在其他设备上,直到我关闭并重新打开该设备上的应用程序。
我在这里遗漏了什么吗?我是否需要向我的实体类添加 ObservableObject 或 Identificable 之类的内容?我该如何纠正这个问题?
编辑:
以下是我获取记录的方法:
@FetchRequest(
entity: Doc.entity(),
sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)]
) var docs: FetchedResults<Doc>
最佳答案
明白了!
我必须添加:
context.automaticallyMergesChangesFromParent = true
到 SceneDelegate
中的 scene()
函数:
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
context.automaticallyMergesChangesFromParent = true
现在可以完美运行了。
关于ios - Core Data + CloudKit 无法在其他设备上自动刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860967/