Требуется ли отдельный NSManagedObjectContext для отката изменений coredata пользователя не ОК? - PullRequest
0 голосов
/ 02 декабря 2011

Требуется ли отдельный NSManagedObjectContext для отката изменений coredata, с которыми пользователь не согласен?

Я отмечаю в примере CoreDataBooks он использует отдельный NSManagedObjectContext. Я хотел бы спросить, является ли это единственным реальным способом удовлетворения требования, и если нет, то каким будет альтернативный подход?

Требование:

  • позволяет пользователю начать вносить изменения в поля объекта на странице
  • это может включать выделение отдельных модальных представлений, чтобы помочь им установить эти данные
  • предлагает одобрить или отменить изменения или нет
  • как часть внесения изменений, которые вы все еще используете, используя управляемые объекты CoreData (т. Е. Не нужно создавать отдельный набор объектов / подходов для этого)
  • так что, если вы хотите использовать существующие объекты основных данных, а затем иметь поддержку изменений OK и CANCEL, это единственный способ сделать это, имея отдельный 2-й NSManagedObjectContext?

ВЫДЕРЖКА ИЗ ПРИМЕРА ДЛЯ ССЫЛКИ

Создает новую книгу, AddViewController для управления добавлением книга и новый контекст управляемого объекта для контроллера добавления, чтобы сохранить изменения, внесенные в книгу отдельно от управляемого приложения контекст объекта, пока книга не будет сохранена. ВАЖНО: это не обязательно использовать второй контекст для этого. Вы можете просто использовать существующий контекст, который упростит часть кода - вам не нужно объединить изменения после сохранения, например. Эта реализация, тем не менее, иллюстрирует шаблон, который иногда может быть полезен (где вы хотите сохранить отдельный набор правок).

1 Ответ

1 голос
/ 02 декабря 2011

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

Просто убедитесь, что вы используете -[NSManagedObjectContext mergeChangesFromContextDidSaveNotification:(NSNotification *)notification] во время сохранения, чтобы правильно синхронизировать основной NSManagedObjectContext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...