带有背景上下文的核心数据通知
Posted
技术标签:
【中文标题】带有背景上下文的核心数据通知【英文标题】:Core Data notifications with background contexts 【发布时间】:2015-06-03 13:23:31 【问题描述】:首先我使用的是 MagicalRecord。我刚刚使用saveWithBlock
方法转换了一些代码以保存在后台。它工作得很好,但我的核心数据通知没有被调用,特别是NSManagedObjectContextObjectsDidChangeNotification
。我认为这是因为保存是在新的背景上下文中完成的,但我认为当它们合并到主上下文时它会被调用。
我在这里做错了什么?
【问题讨论】:
如果任何 managedObjectContext 保存,在任何线程中,它都应该触发这个通知。请仔细查看您可能正在观察一些未保存的上下文。 我正在观察 MR_defaultContext。 【参考方案1】:听起来您观察到了错误的通知。 NSManagedObjectContextObjectsDidChangeNotification
不会在您保存更改时发布。当从上下文中获取的对象的属性值发生更改时,它会被发布。如果您想要保存通知,您需要
NSManagedObjectContextDidSaveNotification
或NSManagedObjectContextWillSaveNotification
。
【讨论】:
嗨,汤姆,谢谢。我实际上正在观察didChange
和 didSave
并且两者都没有开火。以上是关于带有背景上下文的核心数据通知的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 5 中使用 UIManagedDocument 和父/子上下文导入核心数据背景
后台核心数据:使用单独的上下文和通知,但不使用新值更新数据库