【发布时间】:2017-01-06 02:13:19
【问题描述】:
我有两个NSManagedObjectContext,一个用于在后台从一个api响应写入数据,另一个是填充一个NSFetchedResultsController,如下:
// moc used to fetch objects via NSFetchedResultsController:
moc = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
moc.mergePolicy = NSMergeByPropertyStoreTrumpMergePolicy
// moc used when writing data from an api response:
backgroundMoc = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
moc.mergePolicy = NSMergeByPropertyStoreTrumpMergePolicy
有些对象暂时存储在后台 moc 中(无需调用 .save()),我需要将这些更改合并到主 moc,以便我的 NSFetchedResultsController 可以访问它。
我尝试订阅NSManagedObjectContextDidSaveNotification,但只有在我调用backgroundMoc.save() 时才会受到影响,我试图避免这种情况,因为我的backgroundMoc 中的对象有未保存的更改。
最好的方法是什么?
【问题讨论】:
标签: core-data nsfetchedresultscontroller nsmanagedobject nsmanagedobjectcontext nsfetchrequest