В документах говорится:
необходимо реализовать методы формы validate:error: как определено протоколом NSKeyValueCoding
так позволяет, говорят, что у меня есть атрибут, который является интервалом: friendAge
Я хочу удостовериться, что любой друг не может быть моложе, чем 30. Таким образом, как я сделал бы тот метод проверки?
-validateFriendAge:error:
Что я собираюсь сделать там, точно? И что я сделаю с этим NSError, я передаюсь? Я думаю, что это имеет словарь, куда я могу возвратить по-человечески читаемую строку на произвольном языке (т.е. тот, это в настоящее время используется), таким образом, я могу произвести разумную ошибку как: "Друг не является достаточно взрослым"..., как сделать это?
Вы можете делать там все, что хотите. Вы можете подтвердить, что возраст находится между диапазонами или любой другой логикой, которую вы хотите.
Предполагая, что существует проблема, вы заполняете ошибку и имеете по крайней мере значение для NSLocaliedDescriptionKey
. Затем эта ошибка будет передана обратно в пользовательский интерфейс или в другое значение, из которого устанавливается это значение, и позволит вам обработать ошибку проверки. Это означает, что если есть другая полезная информация, которая может вам понадобиться в методе вызова / настройки, вы можете добавить ее в NSError
здесь и получить ее.
Например:
-(BOOL)validateFreindAge:(NSNumber*)ageValue error:(NSError **)outError
{
if ([ageValue integerValue] <= 0) {
NSString *errorDesc = @"Age cannot be below zero.";
NSDictionary *dictionary = [NSDictionary dictionaryWithObject:errorDesc forKey:NSLocalizedDescriptionKey];
*error = [NSError errorWithDomain:@"MyDomain" code:1123 userInfo:dictionary];
return NO;
}
return YES;
}