Когда сохранение не удается, вы (как программист) сделали что-то не так.
Я написал несколько довольно сложных приложений Core-Data и никогда не сталкивался с ошибками сохранения в производственной среде.
Убедитесь, что значения, которые могут вводить пользователи, могут быть сохранены без ошибок.
Это означает, что если у вас нет необязательных отношений, не принимайте кнопку «Готово», пока пользователь не выберет объект для этих отношений. Или установите сущность отношения по умолчанию.
Если вам нужна строка NSString в специальном формате, проверьте эту строку, прежде чем принять ее.
Это также удобнее для пользователя. Если вы скажете ему 10 minutes ago you did something wrong, thats why I will delete all your changes
, он подумает WTF?
. Если вы скажете ему The value you try to enter is not in the correct format. Please use xxxxx
, он подумает Ok, let's change it.
И теперь, когда вы убедились, что сохранение никогда не завершится неудачей, вы можете добавить в него [context rollback]
, потому что вы никогда не должны говорить никогда.
Но прежде чем сделать это, вы должны спросить пользователя, хочет ли он отправить вам журнал ошибок. Потому что сохранение никогда не должно потерпеть неудачу.