Я пытался использовать второй контекст управляемого объекта (MOC) в основных данных, чтобы добавить продажи, которые будут перечислены в NSTableView как ожидающие, пока пользователь не нажмет кнопку для обработки транзакций.
После нажатия кнопки 2-й контекст сохраняется, и NSManagedObjectContextDidSaveNotification запускает mergeChangesFromContextDidSaveNotification в главном контексте.
Пока все в порядке. Но затем мне нужно очистить второй контекст, чтобы следующая транзакция продажи была на пустом MOC. Также, чтобы очистить его от действия отмены или изменения пользователя.
Кажется, что очистка второго MOC невозможна ... и я убедился после поиска решения, что это не жизнеспособный шаблон данных ядра. Вместо этого я теперь возвращаюсь, чтобы использовать только один контекст. Тем не менее, текущая продажа теперь отображает все транзакции, где я хотел бы только текущие. Опять же, если бы я мог перечислить текущие «ожидающие» транзакции там, есть кнопка «Отмена», чтобы отменить их при необходимости; и очистить таблицу после кнопки «процесс продажи», чтобы получить аналогичные средства управления транзакциями.
Итак, я застрял, поскольку не существует очевидного способа идентифицировать «текущие» / ожидающие транзакции из других недавних.
Мне нужен двухэтапный ввод данных. (1) добавить продажи, редактировать и т. Д. (2) обработать, то есть зафиксировать эти продажи
Итак, первая стратегия в принципе выглядит нормально и предлагается (http://developer.apple.com/library/mac/#documentation/DataManagement/Devpedia-CoreData/managedObjectContext.html), а также в этом уроке (http://www.timisted.net/blog/archive/multiple-managed-object-contexts-with-core-data/)
Тем не менее, метод, используемый в этом руководстве, сохраняет только один управляемый объект во втором контексте и копирует / удаляет по мере необходимости.
Является ли наилучшей стратегией использовать первый подход со вторым MOC и копировать и удалять транзакции, а не объединять?
Или есть более простое решение, которого я пока не вижу?
Надеюсь, этот вопрос имеет смысл :-) и любая помощь приветствуется