ios - Core Data + CloudKit 不会在其他设备上自动刷新?
问题描述
我的 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
现在它的工作完美无缺。
推荐阅读
- struct - 解构嵌套选项的推荐方法是什么?
- r - 带时间变量的 lm 函数
- java - 在 ABAP 中,Java 的 finally 关键字的等价物是什么?
- ios - 使用 Swift 导航到 Facebook 页面
- python - Python Tkinter 如何调整 x,y 默认 0,0 坐标
- php - 如何在 PHP 上正确计算 XML
- c++ - 有没有办法列出所有支持的语言环境,无论是 C 还是 C++ 运行时?
- flutter - 即使我在提示文本上使用 AutoSizeText 小部件,为什么我的下拉菜单会溢出?
- python - 为一维 numpy 数组创建成对二维数组的更有效方法是什么?
- javascript - 如何在Javascript es6中过滤对象数组