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