Автоматическое сохранение при удалении объектов из NSArrayController с CoreData - PullRequest
1 голос
/ 23 декабря 2009

У меня есть NSTableView с одним столбцом, связанным с NSArrayController, представляющим коллекцию сущностей из NSManagedObjectContext. У меня также есть кнопка «удалить», которая связана с NSArrayController's действием удаления, и все работает нормально - таблица показывает данные, когда я нажимаю «удалить», объект удаляется из таблицы и т. Д.

Однако это удаление, по-видимому, происходит только в том случае, если граф объектов никогда не сохраняется на диске. Существует ли какой-либо флаг или способ автоматически сохранить такие изменения в графе объектов или это единственный способ ввести новый IBAction для кнопки удаления и явно вызвать сначала remove на контроллере, а затем save на NSManagedObjectContext?

1 Ответ

3 голосов
/ 24 декабря 2009

Похоже, вы говорите о двух отдельных вопросах:

  1. «Удаление из контекста» против «удаление из коллекции» и
  2. Немедленное сохранение изменений в контексте.

Если ваш массив контента связан с каким-либо другим источником, вы можете установить флажок «Удаление объектов при удалении» для привязки массива контента. Я ожидал бы, что объект будет помечен для удаления, если содержимое - это просто все экземпляры предоставленной вами сущности (т. Е. Привязка содержимого / массива не установлена, и она просто извлекает все экземпляры Foo). При сохранении изменений в хранилище объекты в конечном итоге удаляются.

Чтобы сохранить изменения немедленно, вам, вероятно, понадобится ваше собственное отдельное действие, с помощью которого вы можете выполнить действие «удалить этот объект и сохранить». В этом случае вы можете выполнить удаление / удаление, попросить контекст управляемого объекта processPendingChanges , а затем вызвать процедуру сохранения.

...