Core Data + CloudKit是否不会在其他设备上自动刷新?

问题描述 投票:0回答:1

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

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

我在这里想念什么吗?我是否需要向Entity类添加类似ObservableObject或Identifiable的内容?如何解决此问题?

编辑:

这是我获取记录的方式:

@FetchRequest(
    entity: Doc.entity(),
    sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)]
) var docs: FetchedResults<Doc>
ios swift core-data swiftui cloudkit
1个回答
0
投票

想通!

我必须添加:

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/

© www.soinside.com 2019 - 2024. All rights reserved.