Я использую NSManagedObjectContextObjectsDidChangeNotification, и у меня возникла проблема, когда после вставки объекта и последующего вызова отката, чтобы он был удален, уведомление об изменении с удаленным объектом вызывается дважды. Это неожиданное уведомление вызывает осложнения по линии, которую я проследил по этой проблеме. Я продемонстрировал пример Apple Earthquakes, чтобы продемонстрировать эту проблему. Редактирование:
- (void)viewDidLoad {
    [super viewDidLoad];
    [self reloadTableView:self];
    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(contextObjectsDidChangeNotification:)
     name:NSManagedObjectContextObjectsDidChangeNotification
     object:self.managedObjectContext];
    AAPLQuake* quake = (AAPLQuake *)[NSEntityDescription insertNewObjectForEntityForName:@"Quake" inManagedObjectContext:self.managedObjectContext];
    NSLog(@"Why is deleted notified twice?");
    [self.managedObjectContext rollback];
}
-(void)contextObjectsDidChangeNotification:(NSNotification*)notify{
    NSLog(@"contextObjectsDidChangeNotification:");
    NSDictionary* userInfo = notify.userInfo;
    NSSet* inserted = userInfo[NSInsertedObjectsKey];
    if(inserted){
        NSLog(@"\tinserted %ld", inserted.count);
    }
    NSSet* deleted = userInfo[NSDeletedObjectsKey];
    if(deleted){
        NSLog(@"\tdeleted %ld", deleted.count);
    }
}
Выполнение этого результата приводит к следующему выводу:
2015-12-23 00:15:20.086 Earthquakes[7631:5431685] Why is deleted called twice?
2015-12-23 00:15:20.086 Earthquakes[7631:5431685] contextObjectsDidChangeNotification:
2015-12-23 00:15:20.086 Earthquakes[7631:5431685]   inserted 1
2015-12-23 00:15:20.086 Earthquakes[7631:5431685] contextObjectsDidChangeNotification:
2015-12-23 00:15:20.087 Earthquakes[7631:5431685]   deleted 1
2015-12-23 00:15:20.087 Earthquakes[7631:5431685] contextObjectsDidChangeNotification:
2015-12-23 00:15:20.087 Earthquakes[7631:5431685]   deleted 1
Пример доступного проекта здесь.
Кто-нибудь знает, почему это произойдет? Я испытываю это как на OS X 10.11.2, так и на iOS 9.2.
