Может кто-нибудь, пожалуйста, покажет мне пример объекта Cocoa Obj-C с пользовательским уведомлением, как его запустить, подписаться на него и обработать его?Пример пользовательского уведомления о какао
ответ
@implementation MyObject
// Posts a MyNotification message whenever called
- (void)notify {
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification" object:self];
}
// Prints a message whenever a MyNotification is received
- (void)handleNotification:(NSNotification*)note {
NSLog(@"Got notified: %@", note);
}
@end
// somewhere else
MyObject *object = [[MyObject alloc] init];
// receive MyNotification events from any object
[[NSNotificationCenter defaultCenter] addObserver:object selector:@selector(handleNotification:) name:@"MyNotification" object:nil];
// create a notification
[object notify];
Дополнительную информацию см. В документации по NSNotificationCenter.
Какой смысл использовать уведомление? Почему бы просто не называть [object handleNotification] прямо? –
Свободная муфта. Обратите внимание на комментарий «// else else» ... Уведомление - это своего рода широковещательное сообщение. Любой экземпляр объекта может прослушивать уведомление и не должен соответствовать какому-либо конкретному протоколу делегата или тому подобному. Может случиться много случаев при прослушивании одного сообщения. Отправитель не должен иметь указателей на экземпляр (ы) объекта, который он хочет уведомить. –
Шаг 1:
//register to listen for event
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(eventHandler:)
name:@"eventType"
object:nil ];
//event handler when event occurs
-(void)eventHandler: (NSNotification *) notification
{
NSLog(@"event triggered");
}
Шаг 2:
//trigger event
[[NSNotificationCenter defaultCenter]
postNotificationName:@"eventType"
object:nil ];
О, спасибо большое за отличный пример. Это именно то, что мне нужно. – d12frosted
Великолепный :) Спасибо большое –
Убедитесь, что отменить уведомление (наблюдателя), когда ваш объект освобождаться. Документация Apple гласит: «Прежде чем объект, наблюдающий уведомления, будет освобожден, он должен сообщить центру уведомлений о прекращении отправки его уведомлений».
Для местных уведомлений следующего код применит:
[[NSNotificationCenter defaultCenter] removeObserver:self];
И для наблюдателей распределенных уведомлений:
[[NSDistributedNotificationCenter defaultCenter] removeObserver:self];
- 1. Пример уведомления о потолочном освещении
- 2. пример уведомления о потолочном освещении не работает
- 3. Простейший пример привязки какао
- 4. Какао-контроллеры - лучшая практика для уведомления о завершении, для утилизации?
- 5. Пример уведомления WatchKit
- 6. какао: Уведомления пользователя не доставляется
- 7. Какао - уведомление о изменении значения NSUserDefaults?
- 8. функция пример sortedArrayUsingFunction в какао
- 9. Информация о перетаскивании какао
- 10. Нажатие кнопки пользовательского уведомления
- 11. Экран пользовательского push-уведомления
- 12. Внедрение пользовательского хром-уведомления
- 13. Запись звука в какао Пример Пожалуйста!
- 14. Не удается получить уведомления Какао работать
- 15. Какао/NSUserNotificationCenter получить все уведомления NSUserNotification
- 16. Отправка уведомления от обработчика таймера какао
- 17. Верстка пример пользовательского исключения
- 18. Flink пример пользовательского разметки
- 19. Какао/Какао-сенсорная лучшая практика для пользовательского рисунка UIView
- 20. Как получить уведомления о NSView isHidden изменения?
- 21. Rails 4 - уведомления о тостерах, а не уведомления о вспышках
- 22. Получение уведомления о нажатии
- 23. Уведомления о переходе ViewController
- 24. Уведомления о завершении NSOperation?
- 25. Android Уведомления о новинках
- 26. Уведомления о изменениях курсора
- 27. Отключить уведомления о глотании?
- 28. Push-уведомления о
- 29. Уведомления о расписании Android
- 30. Уведомления о замене couchdb
Vague вопроса. Попробуйте задать более конкретный вопрос или выполните поиск документации Apple. – danielpunkass
Я бы обычно не прокомментировал такой вопрос, но, видя, как вы получили «con», тогда моя может быть «профессионалом». Этот вопрос позволяет * краткий * ответ, касающийся строго этой темы. Я просто хочу узнать одну простую вещь - не * scour * документацию яблока (которая, скорее всего, стоила бы - в любом случае). Так что спасибо за задание этого вопроса. Я вижу ваш +15 атм на вопрос, соответствующий моему настроению. – Jacksonkr
+1 тоже. Благодарю. –