2013-05-16 1 views
1

Приложение My iPad использует отбрасываемый дочерний ManagedObjectContexts для редактируемых ViewControllers, поэтому я могу легко отбросить отредактированные данные. Теперь я хочу показать список всех объектов в оверлейном представлении, включая несохраненные объекты, которые все еще могут редактироваться в одном из этих дочерних MOC.Основные данные: выбор объектов из нескольких ManagedObjectContexts

Есть ли способ получить все существующие MOC для запроса выборки во всех контекстах? Я знаю, что я могу отслеживать все контексты, которые я создаю, но мне любопытно, есть ли более элегантное решение.

ответ

0

Нет, только контекст управляемого объекта, в котором были внесены изменения, знает о них до тех пор, пока вы не сохраните контекст и с этим триггером измените распространение.

Альтернативой использованию дочернего MOC в качестве «царапин» является использование диспетчера отмены. Таким образом, сделанные вами изменения будут все в одном MOC (так что запрос на выборку увидит их все), но вы все равно сможете отбросить их назад.

Это может стать немного волосатым, хотя если вам действительно нужны несколько независимых «царапин», в то же время. Однако в этом случае я бы также посмотрел на модель взаимодействия приложения, так как сразу несколько независимых ожидающих изменений кажутся довольно сложными для ограничений интерфейса iPad.

+0

Спасибо за ответ. К сожалению, я не могу использовать один MOC вместе с Undo Manager в этом случае. Мое решение теперь заключается в следующем: я сохраняю все дочерние MOC в слабой хэш-таблице, выполняю запрос на выборку на всех из них и возвращаю объединенный массив результатов (который также довольно волосатый). Спасибо за отличный разговор в UIKonf, кстати! –