Основные данные: создать несколько управляемых объектов, но сохранить только некоторые?

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

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

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

7
задан Tesserex 26 August 2010 в 15:36
поделиться

2 ответа

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

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

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

[[self managedObjectContext] insertObject:object];

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

7
ответ дан 7 December 2019 в 09:55
поделиться

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

-1
ответ дан 7 December 2019 в 09:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: