【问题标题】:Reload private context from main context in iOS从 iOS 的主上下文重新加载私有上下文
【发布时间】:2018-03-12 12:15:37
【问题描述】:

我有一个应用程序,我在其中使用方法从主上下文创建了两个私有上下文

public func newPrivateContext() -> NSManagedObjectContext {
   let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
   privateContext.parent = mainContext
   return privateContext
}

现在我已经使用私有上下文执行了一项操作并保存该上下文

privateContext.saveContext()
mainContext.undoContext()

如何从 iOS 的主上下文刷新或重新加载第二个私有上下文?

任何帮助将不胜感激。

谢谢

悉达多

【问题讨论】:

    标签: ios swift core-data nsmanagedobjectcontext


    【解决方案1】:

    如果您支持 iOS 10 或更高版本,请将您的子上下文 automaticallyMergesChangesFromParent: 设置为 true。否则,您将不得不使用NSManagedObjectContextDidSaveNotification 监控您的主要上下文save 并使用mergeChangesFromContextDidSaveNotification: 合并更改。理想情况下,您会根据设备操作系统是否支持将两者结合使用。

    【讨论】:

    • 感谢您的回复,但我担心如果对第二个私有上下文进行任何更改,将会覆盖主上下文,否则它将合并
    • 合并 - 取决于您的上下文合并策略。您还可以从通知中获取插入/删除/更新的对象,并与您的第二个私有上下文更改进行比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2021-09-12
    • 2017-06-13
    • 1970-01-01
    • 2011-08-26
    相关资源
    最近更新 更多