如何解决NSPersistentCloudKitContainer 在首次应用启动时不返回任何数据
我正在尝试使用 CloudKit 将核心数据镜像到 iCloud。当我在模拟器上删除应用程序然后运行该应用程序时,该应用程序不显示任何数据。然后我再次运行它,这次它显示数据。我试了很多次,结果第一次启动没有数据,但第二次启动有数据。
容器代码:
lazy var persistentContainer: NSPersistentCloudKitContainer = {
let container = NSPersistentCloudKitContainer(name: "MyApp")
container.loadPersistentStores(completionHandler: { (_,error) in
guard let error = error as NSError? else { return }
fatalError("###\(#function): Failed to load persistent stores:\(error)")
})
container.viewContext.automaticallyMergesChangesFromParent = true
return container
}()
获取代码:
let fetchRequest: NSFetchRequest<MyModel> = MyModel.fetchRequest()
let results = try? context.fetch(fetchRequest)
解决方法
我发现了这个问题。这是我从核心数据中获取的方式。
当我使用 NSFetchedResultsController
时,它可以在委托方法中获取 iCloud 中更改的更新:controllerWillChangeContent
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。