核心数据';iOS 10/macOS Sierra中的s NSPersistantContainer

核心数据';iOS 10/macOS Sierra中的s NSPersistantContainer,ios,containers,core,wwdc,viewcontext,Ios,Containers,Core,Wwdc,Viewcontext,因此,我现在非常高兴使用核心数据,因为他们简化了很多(截至2016年世界数据中心) 在应用程序启动时,我计划从核心数据加载预更新的数据,然后让persistentcainer的performBackgroundTask对某些实体进行更新/保存。当实体在后台更新时,UI在获取时应始终显示最新的数据(无论这些实体是否更新) 当我使用一个上下文时,将viewContext的automaticallyMergesChangesFromParent标志设置为true,将其生成设置为。current,是否安

因此,我现在非常高兴使用核心数据,因为他们简化了很多(截至2016年世界数据中心)

在应用程序启动时,我计划从核心数据加载预更新的数据,然后让
persistentcainer
performBackgroundTask
对某些实体进行更新/保存。当实体在后台更新时,UI在获取时应始终显示最新的数据(无论这些实体是否更新)

当我使用一个上下文时,将viewContext的
automaticallyMergesChangesFromParent
标志设置为
true
,将其生成设置为
。current
,是否安全

lazy var persistentContainer: NSPersistentContainer = {

    let container: NSPersistentContainer = {
        $0.viewContext.automaticallyMergesChangesFromParent = true
        try? $0.viewContext.setQueryGenerationFrom(.current)
        return $0
    }(NSPersistentContainer(name: "MyFirstApp"))

    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error {
            fatalError("Unresolved error \(error), \(error._userInfo)")
        }
    })
    return container
}()

谢谢

这两种设置都应该可以,但如果您只使用一种上下文,这两种设置都不重要
automaticallyMergesChangesFromParent
仅在不同上下文执行保存时合并更改,而在另一上下文更改当前上下文正在读取的数据时,查询生成非常有用