KVO quebrado no iOS 9.3

Isso pode ser um bug terrível no iOS 9.3 (versão).

Ao adicionar um único observador ao[NSUserDefaults standardUserDefaults] Eu notei que o método de resposta-observeValueForKeyPath:ofObject:change:context: é chamado várias vezes.

No exemplo simples abaixo, sempre que um UIButton é pressionado uma vez, observeValueForKeyPath é acionado duas vezes. Em exemplos mais complicados, ele dispara ainda mais vezes. Ele está presente apenas no iOS 9.3 (tanto no sim quanto em dispositivos).

Obviamente, isso pode causar estragos em um aplicativo. Mais alguém experimentando o mesmo?

// 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);
} 

questionAnswers(3)

yourAnswerToTheQuestion