Спасибо, Алекс. Я, вероятно, сделаю это.
Тем временем я нашел другой способ сделать это:
1.) Регистрация уведомлений об изменениях:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(managedObjectContextDidChange:)
name:NSManagedObjectContextObjectsDidChangeNotification
object:managedObjectContext];
2.) Когда происходят изменения и сотрудник обновляется. Я проверяю, имеет ли этот объект 0 отношений с отделами, и удаляю его:
- (void)managedObjectContextDidChange:(NSNotification *)notification {
NSSet *updatedObjects = [[notification userInfo] objectForKey:NSUpdatedObjectsKey];
for(NSManagedObject *obj in updatedObjects){
// walk through updated objects -> check for employees
// check if they still contain departments and if not delete them
if([obj.entity.name isEqualToString:@"Employee"]){
NSLog(@"Employee changed!");
if([[(Employee*)obj Departments] count]==0){
NSLog(@"No more relations -> Delete Employee");
[managedObjectContext deleteObject:obj];
}
}
}}
Это тоже хорошо работает, но может усложниться, если у вас есть несколько разных сущностей, для которых можно наблюдать такое поведение.