【问题标题】:ios Core Data: How to change NSManagedObject without saving it to the contextios核心数据:如何更改NSManagedObject而不将其保存到上下文中
【发布时间】:2012-08-21 13:57:30
【问题描述】:

我假设一个名为“mArray”的 NsMutableArray 具有从核心数据上下文中获取的结果。因此,“mArray”包含一些 NSManagedObjects。

有时我必须对这些对象进行一些编辑。

再进一步,我将不得不向上下文添加一些新的 NSManagedObjects,还需要保存上下文。

现在新对象已保存,但对这些对象的上述编辑也已保存。

我希望能够仅将新添加的 NSManagedObjects 保存到上下文中而无需进行编辑。

有人能指点我正确的方向吗?

谢谢

【问题讨论】:

  • 如果添加新实体,此时不需要保存上下文。只需推迟保存,直到您完全准备好。
  • 我将不得不在某个时间保存上下文,因为我需要在下一次应用启动时使用新条目。
  • NSmutableArray *newArr = [mArray mutableCopy]。新数组中的对象将指向 mArray 中的相同对象,对吧?
  • 好吧,保存在 applicationWillTerminate: 中。也就是说,如果您想更改实体,并且不想保存它们,请创建新实体但永远不要将它们添加到上下文中,并使用它们来保留临时设置。
  • MyObject * obj = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject" inManagedObjectContext:nil] 安全吗?

标签: ios core-data save nsmanagedobjectcontext


【解决方案1】:

当您保存上下文时,您将保存其中的所有内容。如果您想处理一些不与其他对象同时保存的对象,则需要使用多个上下文。

请参阅有关 NSManagedObjectContext 的文档,因为使用多个上下文并不是世界上最简单的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多