Question

Faut-il possible d'avoir un observateur NSNotification statique (comme le code ci-dessous)? Je vais avoir quelques problèmes, et je pense que cela peut être dû à ma structure de classe singleton.

Je n'ai pas toujours une instance de classe autour d'écouter les notifications, mais les propriétés statiques de ce bâton de classe autour pour le cycle de vie de ma demande.

- (id)init {
    [super init]

    [[NSNotificationCenter defaultCenter] addObserver:[self class]
                                             selector:@selector(action:aNotification:)
                                                 name:@"NSSomeNotification"
                                               object:nil];
    return self;
}

+ (void)action:(NSNotification *)aNotification {
    NSLog( @"Performing action" );
}
Était-ce utile?

La solution

Le premier problème est peut-être votre sélecteur -. Qui devrait être @selector(action:)

En outre, êtes-vous sûr que vous voulez enregistrer la notification init (qui manque un appel à [super init], qui peut être un autre problème)? Cela signifie que votre avis sera (re) enregistrées chaque fois que vous créez une instance de la classe. Vous pourriez envisager de mettre en œuvre un véritable objet singleton au lieu des méthodes de classe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top