Итак, у меня все работает так ...
У меня есть объект (объект A), который должен наблюдать другой объект (объект B) и реализующий следующую функцию: observeValueForKeyPath:ofObject:change:context:
Obj B вызывает в своей функции init следующее:
[self addObserver:[<some singleton class> sharedManager] forKeyPath:@"someVar" options:(NSKeyValueObservingOptionNew) context:self];
Конечно, класс-наблюдатель не обязательно должен быть одноэлементным, но, конечно, это очень удобно.Я передал объект, который рассматривается как контекст, и это позволило obj A получить доступ ко всем ivars для obj B в функции observeValueForKeyPath:ofObject:change:context:
.
Как я обнаружил, разные фоновые потоки не используются для уведомлений KVO,поэтому я возвращаюсь к использованию протоколов для передачи информации, так как они работают одинаково.
Эта форма передачи данных не рекомендуется, но я просто хотела отметить, что она действительно возможна.