我有一个NSArrayController子类,它设置一个新插入的对象的实例变量,并防止用户删除它,如果此变量为零。防止删除核心数据NSManagedObject
我想在一个实体子类中做到这一点。在awakeFromInsert方法中设置变量是可能的。有没有一种办法,以防止删除,排序的:
if (self.testVariable == 0) return; ?
我没有找到它,但也许我错过了什么。
我有一个NSArrayController子类,它设置一个新插入的对象的实例变量,并防止用户删除它,如果此变量为零。防止删除核心数据NSManagedObject
我想在一个实体子类中做到这一点。在awakeFromInsert方法中设置变量是可能的。有没有一种办法,以防止删除,排序的:
if (self.testVariable == 0) return; ?
我没有找到它,但也许我错过了什么。
在NSManagedObject实现此:
- (BOOL)validateForDelete:(NSError **)error
根据一些测试,我相信validateForDelete
将无法正常工作,防止删除,因为所需。
validateForDelete
用于执行添加验证之前删除。本质上,方法名称是误导性的。例如,对于
此外,prepareForDelete
之前被调用并将删除任何Cascade
关系,并标记null任何Nullify
的关系。因此,必须“退出”。或者改变你的数据模型,只允许Deny
这些将在prepareForDelete中单独留下这些关系。这是一个僵硬的反手应用到你的商业模式和逻辑。
此外,Deny
关系在用户保存数据时被“拒绝” - 这对用户来说可能太迟了,无法恢复和纠正这种情况。
我相信最好的选择是禁用绑定到控制器中的canRemove
方法的移除按钮。
是的,您的实现必须反映你的情况 – mprivat
你的意思是:(BOOL)validateForDelete:(!self.testVariable = 0)(NSError **)错误{ 回报; } ?? – berfis