Core data 防止删除核心数据NSManagedObject
我有一个NSArrayController子类,它设置了一个新插入对象的实例变量,并防止用户在该变量为零时删除它 我希望在实体子类中执行此操作。可以在awakeFromInsert方法中设置变量。有没有办法防止删除,一种:Core data 防止删除核心数据NSManagedObject,core-data,nsmanagedobject,Core Data,Nsmanagedobject,我有一个NSArrayController子类,它设置了一个新插入对象的实例变量,并防止用户在该变量为零时删除它 我希望在实体子类中执行此操作。可以在awakeFromInsert方法中设置变量。有没有办法防止删除,一种: if (self.testVariable == 0) return; ? 我没有找到它,但可能遗漏了什么。在您的NSManagedObject中实现这一点: - (BOOL)validateForDelete:(NSError **)error 根据一些测试,我相信
if (self.testVariable == 0) return; ?
我没有找到它,但可能遗漏了什么。在您的NSManagedObject中实现这一点:
- (BOOL)validateForDelete:(NSError **)error
根据一些测试,我相信
validateForDelete
无法阻止按需要删除
validateForDelete
用于在删除之前执行添加的验证。从本质上讲,方法名称具有误导性。比如说
此外,prepareForDelete
被称为previor,它将删除任何Cascade
关系,并将任何null
关系标记为null。因此,必须“退出”这些关系。或者更改您的数据模型,使其仅允许Deny
,从而将这些关系单独保留在prepareForDelete中。这意味着对你的商业模式和逻辑采取强硬的反手策略
此外,当用户保存数据时,Deny
关系被“拒绝”——这对于用户撤消和纠正这种情况来说可能太晚了
我认为最好的选择是取消激活控制器中绑定到canRemove
方法的Remove按钮
是的,您的实现必须反映您的条件您的意思是:(BOOL)validateForDelete:(NSError**)错误{return(self.testVariable!=0);}??