ios核心数据:如何更改NSManagedObject而不将其保存到上下文中
Posted
技术标签:
【中文标题】ios核心数据:如何更改NSManagedObject而不将其保存到上下文中【英文标题】:ios Core Data: How to change NSManagedObject without saving it to the context 【发布时间】: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] 安全吗? 【参考方案1】:当您保存上下文时,您将保存其中的所有内容。如果您想处理一些不与其他对象同时保存的对象,则需要使用多个上下文。
请参阅有关 NSManagedObjectContext 的文档,因为使用多个上下文并不是世界上最简单的事情。
【讨论】:
以上是关于ios核心数据:如何更改NSManagedObject而不将其保存到上下文中的主要内容,如果未能解决你的问题,请参考以下文章