Ios 从托管对象上下文中临时删除对象
假设我有三个Ios 从托管对象上下文中临时删除对象,ios,core-data,nsmanagedobject,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,假设我有三个NSManagedObjects,每个都有一个名为content的字符串字段,在UI中由UITextField表示。成功保存时,内容字段不得为空。但是,我希望在用户完成编辑单个字段后能够保存托管对象上下文。因此,如果只填写了一个字段,则在托管对象上下文上调用save,将只保存该字段对应的托管对象,而跳过其他两个字段 按照我当前的设置方式,save调用失败,因为其他两个托管对象的content字段为空(字符串长度==0)。我想到一个可能的解决方案是从托管对象上下文中临时删除这些对象,调
NSManagedObject
s,每个都有一个名为content
的字符串字段,在UI中由UITextField
表示。成功保存时,内容
字段不得为空。但是,我希望在用户完成编辑单个字段后能够保存托管对象上下文。因此,如果只填写了一个字段,则在托管对象上下文上调用save
,将只保存该字段对应的托管对象,而跳过其他两个字段
按照我当前的设置方式,save
调用失败,因为其他两个托管对象的content
字段为空(字符串长度==0)。我想到一个可能的解决方案是从托管对象上下文中临时删除这些对象,调用save
,然后将它们重新插入托管对象上下文中。虽然NSManagedObjectContext
方法insertObject:
似乎可以实现此方法的重新插入部分,但我看不到从托管对象上下文中最初删除对象的方法
我最终将如何实现这一点?我可以问一下,为什么要立即保存上下文。iOS将信息保存在内存中,并仅将其保存到数据库中。但是,该信息在特定上下文中仍然可用,无需保存。另一种方法是删除内容文本字段需要填充的约束。当用户获得文本字段的焦点时,为什么不创建每个托管对象?通过这种方式,您将只拥有所需的对象……此外,我不会依赖于核心数据验证……自己动手。好多了@flexaddicted-我想允许用户从一个文本字段切换到下一个文本字段,即使他们没有向切换的文本添加文本。在我的问题上,依赖核心数据验证又有什么错呢?洛伦佐·博阿罗的评论恰到好处。这个问题是我为什么从不使用核心数据的验证功能的经典例证。