КВО сломано в iOS 9.3

Это может быть ужасной ошибкой в ​​iOS 9.3 (выпуск).

При добавлении одного наблюдателя в[NSUserDefaults standardUserDefaults] Я заметил, что отвечающий метод-observeValueForKeyPath:ofObject:change:context: называется несколько раз.

В приведенном ниже простом примере каждый раз, когда нажимается UIB-кнопка один раз, наблюдайте, как значение ValueForKeyPath запускается дважды. В более сложных примерах он срабатывает еще больше раз. Он присутствует только на iOS 9.3 (как на симе, так и на устройствах).

Это может нанести ущерб приложению. Кто-нибудь еще испытывает то же самое?

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

Ответы на вопрос(3)

Ваш ответ на вопрос