核心数据+ CloudKit是否无法在其他设备上自动刷新?

我的SwiftUI应用程序与Core Data + CloudKit一起使用。我可以从Mac或iPhone将新条目保存到数据库中。该应用程序对所有设备使用完全相同的项目/代码库。

唯一的问题是我需要关闭该应用程序,然后重新打开它才能查看其他设备上的任何新条目。我可以立即看到同一设备上的新条目,但是在我关闭并重新打开该应用程序之前,它们不会出现在其他设备上。

我在这里错过了什么吗?我是否需要向Entity类添加类似ObservableObject或Identifiable的内容?我该如何解决这个问题?

编辑:

这是我获取记录的方式:

@FetchRequest(
    entity: Doc.entity(),sortDescriptors: [NSSortDescriptor(key: "title",ascending: true)]
) var docs: FetchedResults<Doc>
wwwoo00mv 回答:核心数据+ CloudKit是否无法在其他设备上自动刷新?

想通了!

我必须添加:

context.automaticallyMergesChangesFromParent = true

转到scene()中的SceneDelegate函数:

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
context.automaticallyMergesChangesFromParent = true

现在可以正常工作了。

信用:https://www.andrewcbancroft.com/blog/ios-development/data-persistence/getting-started-with-nspersistentcloudkitcontainer/

本文链接:https://www.f2er.com/3101069.html

大家都在问