如何在没有coredata的情况下创建nsmanagedobject的实例?

时间:2012-11-02 10:01:18

标签: core-data nsmanagedobject

我对coredata有一个非常讨厌的问题。 我有一个NSManagedObject sublcass,即“Customer”,一切都很好。 有时我需要在coredata堆栈之外创建一个新客户,并且只在某些情况下我需要保存它。

我知道我可以使用NSUndomanager,但这似乎不是一个好主意。

现在我有两个类Customer_managed(NSManagedObject的子类)和Customer_unmanaged(NSObject的子类)。 在Customer_unmanaged中,我添加了一个 - (void)save方法,但这两个类非常耦合,我正在寻找最佳模式。

感谢

2 个答案:

答案 0 :(得分:0)

你这是错误的方式。您应始终使用托管对象上下文来创建托管对象。如果要丢弃它,只需在保存之前删除该对象,它将永远不会触及持久性存储。

如果要将两个实体分开,请考虑使用单独的上下文。

或者,考虑保存“非托管”实体,但是使用其他布尔属性unmanaged标记它们。然后,您可以随时清除它们,或在提取时忽略它们。

答案 1 :(得分:0)

可以在没有上下文的情况下创建NSManagedObject。 Marcus Zarra写了in this SO-answer。提示:如果您尝试使用nil-context创建对象,则不会调用awakeFromInsert: