Валидация в CoreData и ее обработка
Core Data: если включена валидация значений атрибутов, то отловить ошибки валидации можно так:
// //proSwift.ru if managedContext.hasChanges { do { try managedContext.save() } catch let error as NSError { if error.code == NSValidationNumberTooLargeError || error.code == NSValidationNumberTooSmallError { // ... обработка ошибки валидации } else { print("updateRating Не могу сохранить контекст: \(error), \(error.userInfo)") } } }
Тут надо учесть то, что при неверных значениях в полях, где установлена валидация при сохранении контекста система выкинет (throw) ошибку, которую нужно будет поймать и обработать. На восьмой строке кода выполняется проверка на ошибки именно валидации — по названиям понятно, что это ошибка при введении значения больше чем нужно и меньше чем нужно. В обработке мы можем написать сообщение пользователю, чтобы он правильно вводил запрашиваемые значения и открыть окно ввода еще раз. Сохранение контекста, а соответственно и измененных данных в CoreData не происходит!
Добавить комментарий