2012-04-03 4 views
1

У меня есть базовый data 'ShoppingList', который содержит объекты Item. Я сохраняю порядок отображения как атрибут каждого элемента.Дополнительные действия при удалении NSManagedObject

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

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

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

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

ответ

3

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

The doc says:

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

+0

Perfect - спасибо. Не знаю, как я пропустил это. –

Смежные вопросы