Я хочу иметь несколько наблюдателей в нескольких событиях одного объекта (отношения 1-к-N).
Механизм для достижения этой задачи обеспечивается NSNotificationCenter
. Механизм выглядит довольно переполняющим при использовании для моей проблемы.
Как я сделал бы это вручную без использования NSNotificationCenter
:
- (void)addDelegate:(id<DelegateProtocol>)delegate;
- (void)removeDelegate:(id<DelegateProtocol>)delegate;
добавить и удалить наблюдателей из моего объекта.
- (void)someEventFired:(NSObject<NSCopying> *)eventData
{
for (id delegate in delegates) {
NSObject *data = [eventData copy];
[delegate someEventFired:data];
}
}
Этот механизм является простым и простым в реализации без того, чтобы объекты могли совместно использовать дополнительные строки.
- Есть ли официальный шаблон для делегатов с 1 по N (например, события С#) в iOS, помимо
NSNotificationCenter
? - Когда следует использовать
NSNotificationCenter
, а когда нет? - Когда должна использоваться реализация, такая как тот, который я предлагаю здесь, а когда нет?