Core Data在某些情况下调用这些方法:
- (BOOL)validateForInsert:(NSError **)outError;
- (BOOL)validateForUpdate:(NSError **)outError;
- (BOOL)validateForDelete:(NSError **)outError;
我想知道他们是否做了不同的事情,或者他们是否真的在做同样的事情。
据我所知,这些方法为每个属性调用-validateValue:forKey:error:
方法一次。
我能想象的唯一区别在于.validateForDelete:方法。除了应用删除规则之外,我认为没有理由在删除对象时验证对象,可能仅在DENY规则的情况下。
答案 0 :(得分:1)
这些是生命周期验证方法。在许多情况下,验证问题根据对象的状态而不同。例如:
这些方法可以更精细地控制对象层次结构的完整性。