KVO roto en iOS 9.3

Esto podría ser un error horrible en iOS 9.3 (versión).

Al agregar un solo observador a[NSUserDefaults standardUserDefaults] He notado que el método de respuesta-observeValueForKeyPath:ofObject:change:context: Se llama varias veces.

En el ejemplo simple a continuación, cada vez que se presiona un botón UIButton una vez, observeValueForKeyPath se dispara dos veces. En ejemplos más complicados, se dispara aún más veces. Solo está presente en iOS 9.3 (tanto en sim como en dispositivos).

Obviamente, esto puede causar estragos en una aplicación. ¿Alguien más está experimentando lo mismo?

// ViewController.m (barebones, single view app)

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"viewDidLoad");
    [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"SomeKey" options:NSKeyValueObservingOptionNew context:NULL];
}

- (IBAction)buttonPressed:(id)sender {
    NSLog(@"buttonPressed");
    [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"SomeKey"];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
    NSLog(@"observeValueForKeyPath: %@", keyPath);
} 

Respuestas a la pregunta(3)

Su respuesta a la pregunta