web-dev-qa-db-fra.com

Comment puis-je écouter toutes les notifications envoyées à la valeur par défaut de IOS NsnotificationCenter?

Je veux écouter toutes les notifications envoyées au défaut de défaut. Public et privé. Est-ce que quelqu'un sait comment je peux faire cela?

46
Tony

Utilisez NSnotificationCenter's addObserverForName:object:queue:usingBlock: OR addObserver:selector:name:object: méthode et passez nul pour le nom et l'objet.

Exemple

Le code suivant devrait faire le travail:

- (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]);
                          }];
}

Documents

Voici les documents sur addObserverForName:object:queue:usingBlock: . Voir notamment le nom et obj Paramètres.

AddobServerforname: Objet: Queue: UtilisationBlock:

Ajoute une entrée à la table d'expédition du récepteur avec une file d'attente de notification et un bloc à ajouter à la file d'attente, ainsi que des critères facultatifs: nom de notification et expéditeur.

- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block

Paramètres

Nom

Le nom de la notification pour laquelle enregistrer l'observateur; C'est-à-dire que seules les notifications avec ce nom sont utilisées pour ajouter le bloc à la file d'attente de fonctionnement. Si vous passez nul, , le centre de notification n'utilise pas de nom de notification pour décider d'ajouter le bloc à la file d'attente de fonctionnement.

Obj

L'objet dont vous souhaitez ajouter le bloc à la file d'attente de fonctionnement. Si vous passez nul, , le centre de notification n'utilise pas l'expéditeur d'une notification pour décider d'ajouter le bloc à la file d'attente de fonctionnement.

File d'attente

La file d'attente de fonctionnement à quel bloc doit être ajoutée. Si vous passez nul, le bloc est exécuté de manière synchrone sur le fil d'affichage.

Bloc

Le bloc à exécuter lorsque la notification est reçue. Le bloc est copié par le centre de notification et (la copie) détenue jusqu'à ce que l'enregistrement de l'observateur soit supprimé. Le bloc prend un argument:

Notification

La notification.

74
Sam