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

Как упоминалось ранее, одним из веских оснований для этого может послужить принципиальная удаленность или независимость объектов друг от друга.

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

Для того чтобы организовать рассылку уведомлений, следует послать центру уведомлений сообщение postNotif icationName:object:userlnfo:. Например, в одном из моих приложений для простой игры в карты нужно знать, когда карта выбрана касанием экрана. В то же время самой карте ничего неизвестно об игре. Когда она выбирается подобным способом, то просто издает виртуальное восклицание, рассылая уведомление, как показано ниже.

- (void) singleTap: (id) g {

[[NSNotificationCenter defaultCenter] postNotificationName:0"cardTapped" object: self];

}

Игровой объект зарегистрирован на получение уведомления @"cardTapped", и поэтому он откликается на него, извлекая объект уведомления. Теперь ему известно, что карта выбрана, и он может правильно продолжить свое действие.

 

Здесь опускается ряд других аспектов уведомлений, о которых вам вряд ли нужно знать. Вы можете подробнее ознакомиться с ними в документации Notification Programming Topics for Cocoa.


 

 

 

Добавить комментарий