временный объект - PullRequest
       4

временный объект

2 голосов
/ 28 июня 2010

Я использую таблицу с данными из coredata, используя nsfetchedresultscontroller. Когда представление загружается, я создаю новую сущность, используя

SomeManagedObject *someManagedObject = [NSEntityDescription insertNewObjectForEntityForName:@"SomeManagedObject" inManagedObjectContext:self.managedObjectContext];

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

Является ли способ сохранить только один объект, а не все внутри de managedObjectContext?

Это какой-то другой способ сделать временный объект для моей таблицы.

Любая помощь будет приветствоваться. Спасибо Тон

Ответы [ 3 ]

2 голосов
/ 08 августа 2010

Создайте новый NSManagedObject с его alloc init и передайте nil вместо NSManagedObjectContext.Затем, если позже вы решите, что хотите, чтобы этот объект был постоянным, установите его контекст.Однако это не позволит вам увидеть его в NSFetchedResultsController, поскольку он не будет связан с контекстом.

Лучший ответ может быть предоставлен, если вы сможете объяснить, какова ваша конечная цель.

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

Для временных управляемых объектов создайте их со вторым контекстом управляемого объекта (MOC).Когда вы закончите, просто отпустите MOC, не выполняя сохранения.

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

0 голосов
/ 28 июня 2010

Нет, в управляемом объекте сохранение текста - это все или ничего.Чего я не знаю, так это того, что произойдет, если вы установите постоянное хранилище управляемого объекта nil

- (void)assignObject:(id)object toPersistentStore:(NSPersistentStore *)store

Если вы затем сохраните managedObjectContext, этот объект не должен сохраняться.Это всего лишь предположение, но скажите, работает ли оно; -)

...