Дополнительные действия при удалении NSManagedObject - PullRequest
1 голос
/ 03 апреля 2012

У меня есть основные данные «ShoppingList», которые содержат объекты «Item».Я сохраняю порядок отображения в качестве атрибута каждого элемента.

Я бы хотел обновлять порядок отображения всех других элементов в списке покупок при каждом удалении элемента.Код для этого работает нормально, когда я использую его в своем контроллере представления (из которого удален элемент), но, поскольку он действительно связан с бизнес-объектами, а не с представлением, его лучше разместить в ShoppingList или Item..

В идеале я хотел бы, чтобы это было включено в удаление элемента.До сих пор я пробовал следующее:

1) Настроить стандартные базовые данные, сгенерированные ShoppingList.RemoveItemsObject (убедившись, что соблюдаются KVO до. После).Что странного в этом способе, так это то, что переданный элемент лишается своих отношений с другими основными объектами данных, прежде чем он попадает в мой код, что мне нужно для правильной обработки заказов на отображение.2) Настройте Item.didTurnIntoFault.То же самое относится и к этому этапу, но даже атрибуты элемента ушли.

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

1 Ответ

3 голосов
/ 03 апреля 2012

Вы пытались реализовать prepareForDeletion?Похоже, это именно то, что вы ищете.

Документ говорит:

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

...