Ios 如何在MagicalRecord之外创建核心数据实体';s saveWithBlock

Ios 如何在MagicalRecord之外创建核心数据实体';s saveWithBlock,ios,core-data,magicalrecord,Ios,Core Data,Magicalrecord,这是来自 本质上,我需要在一个类中创建一个核心数据对象,并将其传递给另一个类,然后保存它。我们试图使用MagicalRecord,它坚持创建一个不同的上下文,这一事实使情况变得复杂。下面是显示问题的代码块(这是在单元测试中): 本质上,我们创建对象,将其传递给MR save调用,然后重新检索对象,以便继续使用它 当它执行时,会抛出核心数据133000错误。。。(文本:localContext)先生;方法。这似乎是因为主上下文没有保存记录,并且它仍然有一个临时id 确实需要一些帮助,因为我们需要能

这是来自

本质上,我需要在一个类中创建一个核心数据对象,并将其传递给另一个类,然后保存它。我们试图使用MagicalRecord,它坚持创建一个不同的上下文,这一事实使情况变得复杂。下面是显示问题的代码块(这是在单元测试中):

本质上,我们创建对象,将其传递给MR save调用,然后重新检索对象,以便继续使用它

当它执行
时,会抛出核心数据133000错误。。。(文本:localContext)先生;方法。这似乎是因为主上下文没有保存记录,并且它仍然有一个临时id


确实需要一些帮助,因为我们需要能够在MR的saveWithBlock:code之外创建对象。

假设:您正在使用MagialRecord 2.3beta5。如果没有,请发布您的版本

您实际上是在MagicalRecord的
-saveWithBlock:
之外创建对象。你的第一行就是这样。它在MR_defaultContext中创建一个对象,但该对象不会持久化。它只存在于MR_defaultContext中。如果要持久化该对象,只需执行以下操作:

 [referenceData.managedObjectContext MR_saveToPersistentStoreAndWait]; // or a variant of

您可以将
referenceData
传递给另一个对象,即viewController等,即使它未保存。

您找到解决方案了吗?我也有同样的问题…我们发现了一个我们不喜欢的“黑客”,但很有效。我们基本上重新编码以避免使用多个上下文的MR。在其他地方,我们在MR之外手动管理对象。简言之,MR并不是它声称的神奇子弹。
 [referenceData.managedObjectContext MR_saveToPersistentStoreAndWait]; // or a variant of