Поместите точку останова в NSNotificationCenter

Есть ли способ сломать NSNotificationCenter публикацию заметки с определенным именем? У меня есть класс, который по какой-то причине не получает ожидаемую заметку...

Изменить для уточнения:

Я добавил наблюдателя для MPMoviePlayerPlaybackDidFinishNotification, но по какой-то причине кажется, что уведомление не отправляется должным образом. Обычная ошибка здесь заключается в том, что мой объект по какой-то причине отписался от себя в качестве наблюдателя (хотя я считаю, что мой код в этой части выглядит действительным). Итак, мое намерение заключалось в том, можно ли сломать NSNotificationCenter, фактически передавая NotificationName определенного типа, в данном случае MPMoviePlayerPlaybackDidFinishNotification...


person jollyCocoa    schedule 18.01.2011    source источник


Ответы (2)


Добавьте точку останова в Xcode с именем «-[NSNotificationCenter postNotification:]», используя поле, показанное на снимке экрана. Просто помните, что это будет останавливаться для каждого опубликованного уведомления, поэтому вы можете захотеть, чтобы отладчик регистрировал аргументы и автоматически продолжал.

person ughoavgfhw    schedule 18.01.2011

Вы можете поставить точку останова в методах, которые вы вызываете для определенного события. например

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

[nc addObserver:self selector:@selector(keyboardWillShow:) name: UIKeyboardWillShowNotification object:nil];
[nc addObserver:self selector:@selector(keyboardWillHide:) name: UIKeyboardWillHideNotification object:nil];

здесь вы можете использовать точку останова в методах keyboardWillShow и keyboardWillHide, которые вызывают время событий клавиатуры.

Поэтому вам нужно указать действительное имя события и действительное имя объекта.

В случае текстового поля в качестве объекта, который вы используете следующим образом

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

[notificationCenter addObserver:self
                       selector:@selector (handle_TextFieldTextChanged:)
                           name:UITextFieldTextDidChangeNotification
                         object:self.lockTextField];

поэтому я думаю, вам нужно правильно добавить уведомление.

person Ishu    schedule 18.01.2011
comment
Я понимаю, что должен немного уточнить свой вопрос. Я добавил наблюдателя для MPMoviePlayerPlaybackDidFinishNotification, но по какой-то причине кажется, что уведомление не отправляется должным образом. Обычная ошибка здесь заключается в том, что мой объект по какой-то причине отписался от себя в качестве наблюдателя (хотя я считаю, что мой код в этой части выглядит действительным). Итак, мое намерение заключалось в том, можно ли сломать NSNotificationCenter, фактически передавая NotificationName определенного типа, в данном случае MPMoviePlayerPlaybackDidFinishNotification... - person jollyCocoa; 18.01.2011