OGeek|极客世界-中国程序员成长平台

标题: ios - iOS 10/macOS Sierra 中 Core Data 的 NSPersistentContainer [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 17:16
标题: ios - iOS 10/macOS Sierra 中 Core Data 的 NSPersistentContainer

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

在应用启动时,我计划从 Core Data 加载预先更新的数据,然后让 persistentContainerperformBackgroundTask 对某些实体进行更新/保存。由于实体在后台更新,因此 UI 在获取时应始终显示最新的最近数据(无论这些实体是否已更新)。

当我使用 ONE 上下文时,将 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
}()

谢谢!



Best Answer-推荐答案


这两种设置都应该没问题,但如果您只使用一种上下文,则两者都无关紧要。 automaticallyMergesChangesFromParent 只会在不同的上下文执行保存时合并更改,并且当另一个上下文正在更改您当前上下文正在读取的数据时,查询生成很有用。

关于ios - iOS 10/macOS Sierra 中 Core Data 的 NSPersistentContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38946462/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4