我有一个现有的iOS项目,我正在尝试更改为使用CoreData而不是Keyed Archiving。在我现有的项目中,我经常在用户关闭模态视图时创建对象。然后我对该对象进行一些验证,如果一切正常,我继续存储它。但是如果确定该对象无效,我只需将其丢弃并向用户抛出验证消息。
当我开始使用Core Data时,我对此模式感到紧张。我不想在我的数据库中继续创建“临时”对象,只是转身并删除它们。因此,我创建对象而不将它们分配给NSManagedObjectContext。然后,当我确定事物有效时,我才将其分配给上下文。
最后这里有一个问题:这是一种有效的方法吗?事情通常是这样做的吗?我担心随着我对托管对象的使用变得更加复杂,实体之间的关系越来越多,我可能会后悔这个选择。我不必要地让自己变得更难吗?
答案 0 :(得分:1)
执行此操作的常用方法是创建主要上下文的子事件。您可以在该上下文中创建对象,如果要将更改保存到主上下文,然后保存主上下文。如果您不想保留更改,只需丢弃子上下文。