CoreData и Shared ManagedobjectContext в приложении TabBar для iPhone - PullRequest
0 голосов
/ 20 июля 2010

Я, работаю над coredata iphone TabBar app и передаю appdelegate managedObjectContext всем представлениям и подпредставлениям. В некотором случае мне нужно создать новую запись для сущности A, и пока сущность A не сохранена пользователем, мне нужно создатьдругой объект B, используя тот же общий контекст.Теперь моя проблема в том, что если я сохраню контекст для сущности B, то она также сохранит сущность A.Я не хочу сохранять сущность A до тех пор, пока пользователь не захочет ее сохранить.

Я вижу только один способ - создать отдельный контекст для сущности B или что-то еще ....?

Пожалуйста, помогите мне решить эту проблему.

Спасибо,

1 Ответ

0 голосов
/ 25 июля 2010

Вы можете:

  1. Используйте отдельный контекст. Pro: делает то, что вы хотите. Против: Добавлена ​​сложность, и вы не можете легко создавать отношения.
  2. Создайте объект A в нулевом контексте, передавая нулевое значение для контекста при вставке объекта. Затем добавьте его в контекст, когда вы хотите сохранить. Pro: делает то, что вы хотите. Против: То же, что и выше, и потеря всей функциональности, предоставляемой контекстом, такой как поддержка отмены.
  3. Просто удалите объект-A, если пользователь решит, что не хочет его хранить. Pro: просто и безопасно. Против: Отношения в графе объектов должны позволять удалять объект-А, то есть другие объекты, которые вы хотите сохранить, не могут требовать, чтобы объект-А существовал. Вы должны иметь это в виду при разработке модели.

Я почти всегда иду с (3). Это самый простой и безопасный метод на сегодняшний день. Так как это имитирует то, что пользователь фактически делает, то есть создает объект данных, а затем решает выбросить его, это также хорошая практика проектирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...