Я не уверен в точной причине этого (кроме неоднозначности, описанной ниже), но я читал, что несколько наблюдателей не должны добавляться в NSNotificationCenter для одного и того же объекта. Однако я хотел бы добавить вторую пару селектор / имя к тому же объекту в центре уведомлений.
Я добавил первый следующим образом:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(method1:)
name:@"method1Notification"
object:nil];
<ч />
Вариант 1:
Для добавления второго (как показано ниже) , похоже, снова добавляет "self
" в центр уведомлений.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(method2:)
name:@"method2Notification"
object:nil];
Это хорошо? Или, если необходимо, есть ли способ просто добавить еще одну пару селектор / имя к записи "self
" в центре уведомлений по умолчанию?
<ч />
Вариант 2: (псевдокод)
[[[NSNotificationCenter defaultCenter] mySelfObserver]
addSelector:@selector(method2:)
name:@"method2Notification"
object:nil];
<ч />
Неоднозначность:
Казалось бы, в любом случае, если его добавить еще раз, в dealloc:
его, возможно, придется удалить как наблюдателя дважды?
[[NSNotificationCenter defaultCenter] removeObserver:self];
// ... REMOVE IT AGAIN IF OBSERVER ADDED TWICE TO NOTIFICATION CENTER?