Frage

Um es kurz zu machen, ich bin die folgenden NSNotification Zuhörer in ClassA Registrierung (in viewDidLoad):

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playSong) name:@"playNotification" object:nil];

Ich habe die Wähler in ClassA.h erklärt:

- (void)playSong:(NSNotification *) notification;

Und Umsetzung geht wie folgt vor:

- (void)playSong:(NSNotification *) notification {
    NSString *theTitle = [notification object]; 
    NSLog(@"Play stuff", theTitle);
}

In ClassB (im tableView:didSelectRowAtIndexPath: Methode) Ich habe:

NSInteger row = [indexPath row];
NSString *stuff = [playlistArray objectAtIndex:row];
[[NSNotificationCenter defaultCenter] postNotificationName:@"playNotification" object:stuff];

Das alles am Ende mit einer Fehlermeldung, die besagt:

"Unbekannter Selektor gesendet Instanz"

, bevor die playSong Methode aufgerufen wird.

Kann jemand bitte helfen Sie mir hier draußen? Was bin ich zu vergessen, wenn eine Benachrichtigung von einem Controller zum anderen Posting?

War es hilfreich?

Lösung

Ihre @selector brauchen einen : Charakter, wenn es ein Argument nehmen:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playSong:) name:@"playNotification" object:nil];

Instanzen von ClassA tun nicht reagiert auf den playSong Wähler, aber sie tun reagiert auf den playSong: Selektor.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top