Я реализовал небольшое приложение для проверки концепции, использующее Core Data для получения некоторых значений атрибутов объекта от пользователя через текстовые поля, и все это прекрасно работает благодаря информации, найденной здесь и в приложении iPhone Core Data Recipes.Но я нахожусь в точке, где мне нужно отобразить ошибки проверки объекта пользователю, и я не могу найти рекомендуемый способ обработки этого.Код в приложении Recipe просто регистрирует ошибку и говорит: «Замените эту реализацию кодом, чтобы обработать ошибку соответствующим образом».Отлично, спасибо.
Я уверен, что есть множество способов интерпретировать, анализировать и передавать информацию об ошибках валидации пользователю, но я хотел бы знать, есть ли какие-то лучшие практики илишаблон, который кто-то реализовал, чтобы я мог следовать.Где должен находиться код подтверждения типа [newObject valdiateForInsert&error];
?В NSManagedObject подклассы?В UIViewController, который обрабатывает экран, позволяет добавить объект?Может быть, в ValidationController всего приложения?
Все ошибки проверки возвращаются в userInfo NSError, который представляет собой NSDictionary различных ключей и значений NSValidation.Есть ли хороший способ перевести эту информацию об ошибке в нечто полезное для пользователя?Например, в моей модели базовых данных есть правило, согласно которому определенный атрибут может содержать не более 3 символов.Если в процессе сохранения или обновления объекта я получаю ошибку проверки, мне нужно проанализировать NSError userInfo и найти значения для NSValidationErrorKey (имя атрибута), NSValidationErrorValue (значение объекта, вызвавшего ошибку) и NSValidationErrorPredicate (нарушенное правило, которое в этом случае возвращает length <= 3
.
. Есть ли хороший, общепринятый способ сбора и преобразования этих данных во что-то, что может быть передано обратно пользователю?«В настоящее время я извлекаю информацию NSError в строки, а затем провожу серию условных выражений для каждого проверяемого атрибута, и это настолько уродливо, что я хочу рвать, когда смотрю на него.лучший, более чистый способ использования ошибок проверки основных данных и передачи читаемой версии пользователю.