2010-06-13 5 views
0

основных данных называет эти методы в определенных ситуациях:Есть ли разница в реализации этих трех методов проверки?

- (BOOL)validateForInsert:(NSError **)outError; 
- (BOOL)validateForUpdate:(NSError **)outError; 
- (BOOL)validateForDelete:(NSError **)outError; 

Интересно, если они делают что-то другое, или если они по существу, делают те же самые вещи.

Насколько я знаю, эти методы называют метод -validateValue:forKey:error: один раз для каждого свойства.

Единственное отличие, которое я могу себе представить, заключается в методе .validateForDelete:. Я не вижу причин для проверки объекта, когда он должен быть удален, за исключением применения правил удаления, возможно, только в случае правила DENY.

ответ

1

Это методы проверки жизненного цикла. Существует много ситуаций, когда вопрос проверки зависит от состояния объекта. Например:

  • Не удалять, если ребенок X не равен нулю
  • Не вставляйте, если значение X не является уникальным
  • Не обновлять, если ребенок Y не установлен

Эти методы дают более точное управление зерном над целостностью иерархии объектов.