0

我,在coredata iphone TabBar应用程序上工作并将appdelegate managedObjectContext传递给所有视图和子视图。在某些情况下,我需要为实体A创建新记录,而实体A没有被用户保存,我需要创建另一个实体B通过使用相同的共享上下文。现在,我的问题是如果我保存实体 B 的上下文,那么它也会保存实体 A。我不想保存实体 A,直到或更少的用户不想保存它。

我只能看到一种方法是为实体 B 或其他东西创建单独的上下文......?

请帮我解决这个问题。

谢谢,

4

1 回答 1

0

你可以:

  1. 使用单独的上下文。亲:做你想做的事。缺点:增加了复杂性,你不能轻易地建立关系。
  2. 通过在插入对象时为上下文传递一个 nil 值,在 nil 上下文中创建对象 A。然后在要保存时将其添加到上下文中。亲:做你想做的事。缺点:与上面相同,并放弃上下文提供的所有功能,例如撤消支持。
  3. 只需删除对象-A 是用户决定他们不想保留的。优点:简单安全。缺点:对象图中的关系必须允许删除对象-A,即您要保留的其他对象不能要求对象-A 存在。在设计模型时必须牢记这一点。

我几乎总是选择(3)。这是迄今为止最简单、最安全的方法。由于它模仿了用户实际所做的事情,即创建一个数据对象然后决定将其丢弃,这也是一种很好的设计实践。

于 2010-07-25T14:30:34.983 回答