Frage

Hallo Leute, Ich habe ein anderes Problem. Dieses Mal mit NSNotificationCenter. Jetzt stürzt, aber vor ein paar Tagen, als ich die Meldung hinzugefügt, es funktionierte einwandfrei. In der Zeit zwischen Ich habe einige Code, der nichts mit dem ...

zu tun hat

Ich habe etwa 10x10 Kacheln. Jede Fliese fügt sich als Beobachter, sobald sie erstellt wird:

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

Und in meiner Spielerklasse, jedes Mal, wenn ein Sprung beendet ist, schreibe ich ein Benachrichtigung durch den folgenden Code:

if (self.postNotifications == YES) {
    //Also post the notification for all the Tiles.
    [[NSNotificationCenter defaultCenter] postNotificationName:@"TestNot" object:self];
}

Wenn ich NSLog () bei den Fliesen zu verwenden, kann ich sehen, dass etwa 3 oder 4 Fliesen die Benachrichtigung erhalten. Und danach, stürzt die Anwendung mit einem EXC_BAD_ACCESS. Es sagt objc_msgSend() selector name: playerJumped. Aber ich nicht, warum. Ich sehe, dass es mit dem ersten Werk als es stürzt ab. Was ist hier mein Fehler? Kannst du mir bitte helfen! Sandro

EDIT: Gibt es ein Problem, weil die Mitteilung von etwa 100 Objekten empfangen wird?

War es hilfreich?

Lösung

Ihre Fliese Objekt wurde ausgeplanten, aber es ist immer noch mit dem notificationCenter registriert Benachrichtigung zu erhalten. Versuchen Sie, einen Haltepunkt auf der -dealloc Methode der Fliese, wenn dies nicht das, was man erwartet.

Andere Tipps

Das gleiche Problem selbst hat. Addiert man diese auf die Klasse hat das Problem gelöst

- (void) dealloc 
{

  [[NSNotificationCenter defaultCenter] removeObserver:self];

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