Основные данные: создать несколько управляемых объектов, но сохранить только некоторые? - PullRequest
7 голосов
/ 26 августа 2010

Я пытаюсь написать систему избранного для моего приложения.Я уже преобразовал свою модель в управляемый объект.Поэтому представьте, что пользователю представлен экран со списком таких объектов.Они могут выбрать сохранение некоторых из своих избранных, которые сохранят их в основных данных.

Проблема заключается в том, что при создании всех этих объектов модели я делаю это с контекстом управляемого объекта.Если пользователь сохранит один из них в своем избранном, он сохранит весь контекст и сохранит каждую отдельную сущность.Дополнения не будут в избранном, поскольку добавление в избранное создает «любимую» сущность, которая сохраняется и указывает на объект, которого у других не будет.Но все остальные объекты будут сохранены без необходимости.

Какой стандартный выход из этого / стандартного способа разработки системы избранного iPhone?Должен ли я разделить мою модель на два класса: один, который я показываю пользователю, а затем тот, который сохраняется в БД?Таким образом, я мог конструировать свои модели, не помещая их в MOC.Но это будет дублированный класс со всеми одинаковыми полями.

Ответы [ 2 ]

7 голосов
/ 26 августа 2010

На самом деле не существует стандартного способа сделать это, потому что Core Data ожидает, что вы сохраните созданные вами объекты. Тем не менее, если вы создаете объекты с:

id object = [[NSManagedObject alloc] initWithEntityDescription:entity inManagedObjectContext:nil];

У них не будет контекста для сохранения. Тогда для тех, кого нужно сохранить, вы можете:

[[self managedObjectContext] insertObject:object];

Затем вызовите -save: для контекста, и сохранятся будут только те, для которых установлен контекст.

0 голосов
/ 26 августа 2010

Не было бы проще иметь свойство isFavorite для ваших управляемых объектов. Затем в вашем избранном представлении вы можете фильтровать на основе этого?

...