1

У меня есть контроллер представление B, который является подкласс .I прописал для уведомления по имени kMyNotificaitonName в в вViewWillAppear как этогоМетоды вызова NSNotificationCenter из суперкласса или подкласса?

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MyNotificaitonNameHandler:) name: kMyNotificaitonName object:nil]; 

Я реализовал MyNotificaitonNameHandler в поле зрения контроллера A и B, какой метод получит заполняли?

ответ

2

Это зависит от конкретного объекта. Если вы создали экземпляр A, это будет A. Иначе. Поскольку ваш класс B обеспечивает реализацию MyNotificaitonNameHandler, и у вас есть экземпляр B, то это B. Pure OOP

+0

Я упомянул в своем вопросе, что я регистрируюсь в ViewWillAppear A. то что будет называться? Вы имеете в виду, что непредсказуемо? – jailani

+0

@jailani я понимаю. Я внимательно прочитал ваш вопрос. Я не говорю, что это зависит от того, где вы добавили свой объект в качестве наблюдателя, я говорю, что это зависит от того, какой тип класса у вас есть. Вы написали: «У меня есть контроллер просмотра B», это означает, что реализация B будет называться –

+1

@jailani, это на 100 процентов предсказуемо. Это зависит только от типа объекта и ничего другого. Это полиморфизм –