iOS 10 / macOS Sierra中Core Data的NSPersistentContainer

50pmv0ei  于 5个月前  发布在  iOS
关注(0)|答案(1)|浏览(66)

真的很兴奋现在使用核心数据,因为他们让它变得多么 * 简单 *(截至WWDC 2016)。
在应用程序启动时,我计划从Core Data加载预更新的数据,然后让persistentContainerperformBackgroundTask对某些实体进行更新/保存。由于实体是在后台更新的,因此在获取时,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
}()

字符串

9avjhtql

9avjhtql1#

这两个设置都应该没问题,但是如果你只使用一个上下文,这两个都不重要。automaticallyMergesChangesFromParent只会在不同的上下文执行保存时合并更改,当另一个上下文正在更改你当前上下文正在阅读的数据时,查询生成是有用的。

相关问题