我可以跳过嵌套上下文中的操作吗?

时间:2012-11-22 21:45:34

标签: core-data nsmanagedobject nsmanagedobjectcontext

在嵌套上下文之前,我很容易从NSManagedObjects中声明一些常用函数,例如:

  • awakeFromFetch
  • awakeFromInsert
  • validateX
  • didChangeValueForKey

通过尝试和失败,称之为生命课程。在与我的实体一起使用继承时,我学会了对这些函数更加小心。

现在跳转到Core Data的嵌套上下文部分,我习惯于在几个上下文中看到相同的NSManagedObject。我试图抓住这个的关键部分:上面提到的函数可能会从不同的上下文中多次调用,但验证,值观察和初始化之类的东西只相关一次。因此,我通常会检查self.managedObjectContext是否与我使用的主上下文相对应。如果它们是相同的,我运行整个函数,如果没有,我只需调用[super]并返回。

这是我应该处理嵌套上下文的方式吗?

这样做了几次。我很惊讶看到awakeFromInsert多次为同一个对象调用,但即使我在所有上下文中除了主函数的那个​​函数的初始化部分,信息也会持久地返回到商店。我想确认一下我正在以正确的方式处理这个话题。

更新

试图明确我的想法我在博客中写了一篇关于这个主题的帖子。我在那里写的内容从无效的实体布局和其他错误中多次保存了我。但是我不确定是否有比我更好的方法。

http://www.digital-lumberjack.com/blog/2012/11/surviving-core-data/

0 个答案:

没有答案