У меня есть элегантная система, настроенная с использованием Core Data, в которой при каждом изменении свойства объекта модели оно автоматически отражается в ассоциированном представлении с использованием наблюдения значения ключа, но я столкнулся с проблемой с помощью отмены.
Проблема возникает, когда я удалил объект модели. Связанное представление уничтожается вместе со всеми наблюдениями значения ключа, когда это происходит. Пользователь внезапно решает, что удаление было плохой идеей, и выдает команду отмены, восстанавливая объект модели. К этому моменту наблюдение значения ключа было уничтожено, и я не могу найти хороший способ выяснить, какой объект модели был возвращен из мертвых, и снова все настроить.
Текущее решение, о котором я подумал, - это регистрация для NSUndoManagerDidUndoChangeNotification, а затем ручное прохождение через объекты модели Core Data и просмотр того, какие из них не имеют связанного представления. Я полагаю, что должен быть способ просто узнать, какой именно объект был возвращен, и подумал, что этот подход будет излишним.
Я также думал о создании группы отмен, в которой удаленное представление повторно добавляется при повторном появлении объекта модели, но я хотел бы, чтобы мой менеджер отмены был связан с моделью, только если это возможно.
Я думаю, что решение, которое я ищу, состоит в том, чтобы менеджер отмены сказал: «Эй! Любой, кто заинтересован, послушайте! Я только что отменил, и вот объект модели Core Data, который был воскрешен! что ты будешь!" а затем я настраиваю вид, как если бы был создан новый объект модели.
Есть идеи или рекомендации?