Я не уверен в точной причине этого (кроме двусмысленности, описанной ниже), но я читал, что несколько наблюдателей не должны добавляться в 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?