«Транзакции» с несколькими свойствами в Core Data / NSManagedObject / NSFetchedResultsController? - PullRequest
1 голос
/ 05 февраля 2010

Можно ли установить несколько свойств NSManagedObject и иметь NSFetchedResultsController, вызывающий controllerDidChangeContent: только один раз?

Другими словами, можно ли сказать что-то вроде:

[managedObject beginChanges];
[managedObject setPropertyA:@"Foo"];
[managedObject setPropertyB:@"Bar"];
[managedObject commitChanges];

и затем NSFetchedResultsController вызывает controllerDidChangeContent: (и другие методы) только один раз?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 11 марта 2010

Я решаю это сейчас, создав еще один NSManagedObjectContext, который действует как «блокнот» для изменений. Затем, когда все изменения были сделаны, они возвращаются в другой контекст, используя mergeChangesFromContextDidSaveNotification:. Существует пример проекта под названием CoreDataBooks, показывающий, как это работает.

0 голосов
/ 11 марта 2010

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

...