2013-11-14 2 views
0

Я использовал центр NSNotification для получения текущего объема IPhone. Пример [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:MPMusicPlayerControllerVolumeDidChangeNotification object:musicPlayer]; Я не использовал сообщение Post Message в своем коде, но вызывается метод volumeChanged. так Что такое использование оповещения и как его использовать?Что такое Post NSNotification в ios?

+0

http://stackoverflow.com/questions/2676398/how-to-post-and-receive-an-notification – JSA986

ответ

0

Вы подписаны на уведомление (так что вам не нужно его отправлять). Вероятно, MPMusicPlayerController - это класс/экземпляр, отправляющий уведомление.

Подробнее о том, как работают уведомления here.

1

Многие уведомления генерируются автоматически iOS, и вам разрешено наблюдать за ними и реагировать соответственно, что именно то, что вы сделали, прослушивая уведомление об изменении тома.

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

внутри метода вы можете назвать что-то вроде этого:

[[NSNotificationCenter defaultCenter] postNotificationName:@"com.ryan.cumley.updatedData" object:nil]; 

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

Теперь любой объект, который в настоящее время существует в вашем приложении, который ранее добавил себя в качестве наблюдателя для этого имени уведомления, получит это сообщение и включит его.

Этот шаблон дизайна особенно полезен для передачи сообщений между удаленными объектами без необходимости поддерживать любые четкие ссылки друг на друга. Кроме того, одновременно можно наблюдать много разных объектов, это не только сообщение 1-1.

Вы также можете передать информацию с уведомлением, используя аргумент object:.

Смежные вопросы