HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 奇怪的父/子NSManagedObjectContext现象大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了两个这样的上下文:
// create writer MOC
_privateWriterContext = [[NsmanagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[_privateWriterContext setPersistentStoreCoordinator:_persistentStoreCoordinator];

// create main thread MOC
_managedObjectContext = [[NsmanagedObjectContext alloc] initWithConcurrencyType:NsmainQueueConcurrencyType];
_managedObjectContext.parentContext = _privateWriterContext;

我有一个NSFetchResultedController由_managedObjectContext启动.

我知道这很奇怪,但是我添加一个记录给父对_privateWriterContext,我保存它.

令人惊讶的是,儿童上下文,所以FRC收到关于这个事件的通知.为什么?我还没有重置孩子,或其他任何东西.只要孩子的上下文不能得到保存,我认为他们是独立的实体.

在@pteofil文章中我发现了这一行:

解决方法

这不应该发生.将一个NsmanagedObject(‘record’)添加到parentContext,不会使孩子自动识别该对象.只有当您使childContext执行fetch时,才会从parentContext中获取.
要弄清楚你的情况发生了什么,这里有一些建议:

找出对childContext执行撷取时(这是通过fetchedRestultsController完成的).在检查parentContext之前或之后,检查该撷取是否发生.
>在fetchedResultsController的所有四个委托回调中设置断点,以找出它正在调用哪个对象(并查看它是否是刚添加到parentContext的对象).
确保你知道发送邮件的哪个上下文.

我有一个使用类似的方法,但不同的是:childContext是上下文用于解析新数据(在私有队列中),当这个解析完成时,chid调用save:.这将保存更改为父级,这在我的情况下是mainQueueContext.此调用save:将导致mainQueueContext接收所有新解析的对象,并且任何使用该mainQueueContext的fetchedResultsController将会调用它们的新/更改/更新/删除对象的委托方法.您可以尝试反转您的孩子/父母关系,并查看文档中是否按照文档中所述进行操作,以便了解发生的情况.

大佬总结

以上是大佬教程为你收集整理的ios – 奇怪的父/子NSManagedObjectContext现象全部内容,希望文章能够帮你解决ios – 奇怪的父/子NSManagedObjectContext现象所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。