8 Stimmen

Wenn ich einen Beobachter für eine Benachrichtigung im AppDelegate hinzufüge, muss ich mir dann die Mühe machen, ihn zu entfernen?

In der AppDelegate's didFinishLaunchingWithOptions :

[[NSNotificationCenter defaultCenter] addObserver:self 
                                      selector:@selector(contextChanged:)
                                      name:NSManagedObjectContextDidSaveNotification
                                      object:nil];

So kann ich Änderungen an den Daten aus anderen Threads zusammenführen.

Frage: Muss ich mir die Mühe machen, diesen Hörer in applicationWillResignActive o applicationWillTerminate ? Es sieht nicht so aus, als gäbe es einen Grund dafür. Ich schätze, ich frage, ob es normal ist, Hörer wie diese in der Hauptschleife zu haben, die nie entfernt werden.

8voto

fbernardo Punkte 9880

Sie können sie nie entfernen, aber wenn Ihre Anwendung eine Benachrichtigung erhält (was in diesem Fall nicht der Fall ist), während sie sich im Hintergrund befindet, wird die Benachrichtigung in die Warteschlange gestellt und der Anwendung zugestellt, wenn sie wieder hochkommt (wenn die Anwendung nicht beendet wird).

Wenn Sie nicht möchten, dass Benachrichtigungen, die passieren, wenn Ihre App im Hintergrund ist, zugestellt werden, sobald sie hochkommt, können Sie den Listener in den Methoden, die Sie angegeben haben, entfernen.

In diesem Fall spielt das eigentlich keine Rolle.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X