2011-10-03 2 views
3

У меня есть приложение (iPad & Mac Lion), в котором используется CoreData для его хранения. Приложение импортирует данные с нескольких аппаратных устройств, декодирует данные в ряд дискретных событий и представляет список событий пользователю, у которого есть выбор для выбора того, какие события будут сохранены.Обзор основных данных для импорта данных

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

Я подозреваю, что должно быть лучше, ниже кода над головой (читай: более управляемый) способ сделать это:

  • Могу ли я создавать основные объекты данных без необходимости их сохраняется в хранилище, а затем сохранить только те, которые были выбраны пользователем?
  • Или есть какой-то другой способ структурировать это, используя CoreData?

ответ

1

Это то, что Managed Object Contexts предназначено для. :-) Создайте «контекст импорта» отдельно от обычного контекста данных, который отображает фактические данные, которые пользователь имеет в своей «базе данных». Создайте все объекты (и не сохраняйте) в этом контексте, дайте возможность пользователю отказаться от тех, которые он/она не хочет, а затем объедините контексты, когда они сделаны с импортом и сохранением.

+0

Ах, ха! Большое спасибо. –