Предположим, я хочу наблюдать свойство с именем 'isEnabled
' в свойстве с именем 'controller' на себе. AFAIK у меня есть два варианта установки такого рода наблюдения:
1. [self.controller addObserver:self forKeyPath:@"isEnabled" options:0 context:nil];
2. [self addObserver:self forKeyPath:@"controller.isEnabled" options:0 context:nil];
Использование вложенных путей ключа в KVO
Я заметил, что практическая разница между этими двумя подходами - на втором подходе я получит уведомление, если Объект «контроллер» на «я» был заменен, а при первом подходе я буду уведомлен только тогда, когда свойство «isEnabled
» изменено в том же экземпляре, на котором я установил наблюдение.
Мой вопрос в том, где, черт возьми, это документировано, если вообще? Я знаю, что это работает, но я должен использовать его?
Я не мог найти упоминания о таком поведении в документах Apple, хотя некоторые другие парни упомянули об этом на форумах. Любая ссылка будет с радостью принята.
Спасибо.
Я почти считаю неявно документированы для принятия ключа * путь * в отличие от просто клавишу * *. –