0

我正在尝试使用 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)
4

1 回答 1

0

我发现了这个问题。这与我从 Core Data 获取的方式有关。当我使用NSFetchedResultsController在委托方法中获取 iCloud 更改更新的地方时,它可以工作:controllerWillChangeContent

于 2020-12-31T14:08:47.520 回答