Можно ли установить несколько свойств NSManagedObject и вызвать контроллер DidChangeContent вызова NSFetchedResultsController: только один раз?

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

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

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

Благодарность!

1
Martijn Thé 5 Фев 2010 в 02:54

2 ответа

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

3
Martijn Thé 11 Мар 2010 в 14:17

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

0
Shaggy Frog 11 Мар 2010 в 02:41