Теоретически вы можете выполнить итерацию по всем описаниям сущностей в вашей модели управляемых объектов, создать для них запрос на выборку без предикатов, затем выполнить цикл по всем возвращаемым объектам и выполнить некоторое обновление. Пример:
// Given some NSManagedObjectContext *context
NSManagedObjectModel *model = [[context persistentStoreCoordinator]
managedObjectModel];
for(NSEntityDescription *entity in [model entities]) {
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entity];
NSError *error;
NSArray *results = [context executeFetchRequest:request error:&error];
// Error-checking here...
for(NSManagedObject *object in results) {
// Do your updates here
}
}
Обратите внимание, что вы можете приводить возвращаемые NSManagedObjects по мере необходимости, либо проверяя равенство классов (используя isKindOfClass:
или связанный метод), либо выясняя, к какому классу относится текущая сущность (используя свойство managedObjectClassName
в entity
в в сочетании с методом NSClassWithName()
).