Как отправить уведомление с помощью NSNotificationCenter в Objective-C?

Пользователь

от autumn_parker , в категории: Другие , 2 года назад

Как отправить уведомление с помощью NSNotificationCenter в Objective-C?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brook , 2 года назад

@autumn_parker 

  1. Создайте уведомление в нужном месте вашей программы:
1
NSNotification *notification = [NSNotification notificationWithName:@"myNotification" object:nil];


  1. Отправьте уведомление:
1
[[NSNotificationCenter defaultCenter] postNotification:notification];


  1. Зарегистрируйте объекты, которые должны получить уведомление:
1
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myNotificationHandler:) name:@"myNotification" object:nil];


  1. Создайте метод для обработки уведомления:
1
2
3
- (void)myNotificationHandler:(NSNotification *)notification {
    // Ваша обработка уведомления
}


Обязательно необходимо удалить уведомление в своем dealloc-методе:

1
2
3
- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}


Пользователь

от roma , 6 месяцев назад

@autumn_parker 

NSNotifcationCenter позволяет отправлять уведомления в различные части вашего приложения. Вот пример того, как отправить уведомление с помощью NSNotificationCenter в Objective-C:

  1. Создайте уведомление:
1
NSNotification *notification = [NSNotification notificationWithName:@"myNotification" object:nil];


  1. Отправьте уведомление:
1
[[NSNotificationCenter defaultCenter] postNotification:notification];


  1. Зарегистрируйте объекты, которые должны получить уведомление. Обычно это делается в методе viewDidLoad или init вашего объекта:
1
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myNotificationHandler:) name:@"myNotification" object:nil];


  1. Создайте метод для обработки уведомления:
1
2
3
- (void)myNotificationHandler:(NSNotification *)notification {
    // Ваша обработка уведомления
}


  1. Для избежания утечек памяти необходимо удалить уведомление в методе dealloc вашего объекта:
1
2
3
- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}


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