Можно ли установить несколько свойств NSManagedObject и вызвать контроллер DidChangeContent вызова NSFetchedResultsController: только один раз?
Другими словами, можно ли сказать что-то вроде:
[managedObject beginChanges];
[managedObject setPropertyA:@"Foo"];
[managedObject setPropertyB:@"Bar"];
[managedObject commitChanges];
А затем вызвать контроллер DidChangeContent: (и другие методы) NSFetchedResultsController только один раз?
Благодарность!
2 ответа
Я решаю это сейчас, создавая еще один NSManagedObjectContext
, который действует как «блокнот» для изменений. Затем, когда все изменения сделаны, он снова объединяется с другим контекстом, используя mergeChangesFromContextDidSaveNotification:
. Существует пример проекта под названием CoreDataBooks, показывающий, как это работает.
Хотя это определенно не идеальное решение, вы можете добавить в свой класс управляемых объектов метод, который принимает два новых значения свойств и работает так же, как ваш код выше.
Похожие вопросы
Новые вопросы
iphone
НЕ ИСПОЛЬЗУЙТЕ этот тег, если вы не обращаетесь конкретно к iPhone и / или iPod touch от Apple. Для вопросов, не зависящих от оборудования, используйте тег [ios]. Больше тегов, которые нужно рассмотреть, это [xcode] (но только если вопрос касается самой IDE), [swift], [target-c] или [cocoa-touch] (но не [cocoa]). Пожалуйста, воздержитесь от вопросов, касающихся iTunes App Store или iTunes Connect. Если вы используете C #, пометьте [mono].