Я хочу прослушать все уведомления, отправленные в центр по умолчанию. Как государственные, так и частные. Кто-нибудь знает, как я могу это сделать?
Как я могу прослушивать все уведомления, отправленные в центр iOS NSNotificationCenter defaultCenter?
Ответ 1
Использовать NSNotificationCenter addObserverForName:object:queue:usingBlock:
ИЛИ addObserver:selector:name:object:
метод и передать nil для имени и объекта.
Пример
Следующий код должен выполнить задание:
- (void)dumpNotifications {
NSNotificationCenter *notifyCenter = [NSNotificationCenter defaultCenter];
[notifyCenter addObserverForName:nil
object:nil
queue:nil
usingBlock:^(NSNotification *notification){
// Explore notification
NSLog(@"Notification found with:"
"\r\n name: %@"
"\r\n object: %@"
"\r\n userInfo: %@",
[notification name],
[notification object],
[notification userInfo]);
}];
}
Документы
Вот документы на addObserverForName:object:queue:usingBlock:
. В частности, см. Параметры имени и obj.
addObserverForName: Объект: очереди: usingBlock:
Добавляет запись в таблицу отправки получателей с уведомлением очередь и блок для добавления в очередь, а также дополнительные критерии: имя уведомления и отправитель.
- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block
Параметры
имя
Название уведомления, для которого регистрируется наблюдатель; что есть, только уведомления с этим именем используются для добавления блока к очереди операций. Если вы передаете нуль, центр уведомлений не использует имя уведомления, чтобы решить, следует ли добавить блок к очереди операций.
OBJ
Объект, чьи уведомления вы хотите добавить в блок очереди операций. Если вы передаете нуль, центр уведомлений не использует отправителю уведомлений, чтобы решить, следует ли добавить блок к очереди операций.
очереди
Операционная очередь, к которой должен быть добавлен блок. Если вы пройдете ноль, блок выполняется синхронно в потоке проводки.
блок
Блок, который будет выполняться при получении уведомления. Блок копируется центром уведомления и (копией), хранящимся до тех пор, пока регистрация наблюдателя удаляется. Блок принимает один аргумент:
уведомление
Уведомление.