Core Data 在 iOS 10 / macOS Sierra 中的 NSPersistentContainer

问题描述 投票:0回答:1

我现在真的很高兴使用 Core Data,因为他们让它变得更简单(截至 WWDC 2016)。

在应用程序启动时,我计划从 Core Data 加载预更新的数据,然后让

persistentContainer
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
}()
ios core-data containers wwdc viewcontext
1个回答
0
投票

这两个设置都应该没问题,但如果您只使用一种上下文,则两者都不重要。

automaticallyMergesChangesFromParent
仅当不同的上下文执行保存时才会合并更改,并且当另一个上下文正在更改当前上下文正在读取的数据时,查询生成很有用。

© www.soinside.com 2019 - 2024. All rights reserved.