NSManagedContext становится нулем после сохранения - PullRequest
0 голосов
/ 24 июня 2019

Я сохраняю контекст управляемого объекта, используя приведенный ниже код.

var obj = try decoder.decode(modelType, from: jsonData)
obj.save()

Это вставляет сущность в основной контекст и сохраняет основной контекст. Это обычно работает хорошо. Мой entity имеет необходимые unique constraints, необходимые для поддержания уникальности. Но если после запуска obj.save() уже есть запись в контексте, managedObjectContext для managedObject становится nil

В то время как я определил NSMergePolicy, следовательно, я ожидаю, что слияние завершится успешно.

Как убедиться, что не потеряли ссылку на контекст после сохранения.

1 Ответ

0 голосов
/ 25 июня 2019

Любой NSMergePolicy кроме error не так.Он просит основные данные потерять данные, вы просто должны решить, какие именно.Большинство ограничений неверны.Это просит бизнес-логику быть в ошибках базы данных.Вместо того, чтобы проверять ваши данные перед вводом, выдается ошибка при попытке сохранить их.С этим гораздо сложнее иметь дело.

Это не означает, что вы не можете выполнить настройку с помощью политики слияния и ограничений работы.Но мне еще предстоит увидеть установку, в которой эти инструменты облегчили бы программирование приложения.

...