Валидация в 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 не происходит!

Метки: ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.