我的SwiftUI应用与Core Data + CloudKit一起使用。我可以从Mac或iPhone将新条目保存到数据库中。该应用程序对所有设备使用完全相同的项目/代码库。
唯一的问题是,我需要关闭该应用程序,然后重新打开它才能查看其他设备上的任何新条目。我可以立即看到来自同一设备的新条目,但是在我关闭并重新打开应用程序之后,它们才会出现在其他设备上。
我在这里想念什么吗?我是否需要向Entity类添加类似ObservableObject或Identifiable的内容?如何解决此问题?
编辑:
这是我获取记录的方式:
@FetchRequest(
entity: Doc.entity(),
sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)]
) var docs: FetchedResults<Doc>
想通!
我必须添加:
context.automaticallyMergesChangesFromParent = true
至scene()
中的SceneDelegate
功能:
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
context.automaticallyMergesChangesFromParent = true
现在可以正常工作了。