Es ist wirklich auf die Rolle der Klasse abhängt, in dem Sie NSNotificationCenter Benachrichtigungen abonnieren. Wenn Sie Ihre Anmeldung an:
UIView
Dann sollten Sie so schnell abmelden als Ansicht für den Benutzer unsichtbar wird. So sparen Sie CPU-Zyklen und verbrauchen keine Ressourcen, während der Benutzer die Ansicht nicht sieht.
UIViewController
Hier hängt es auch von der Art der Aktion, die Sie als Antwort auf Benachrichtigung ausführen werden. Wenn es sich nur um eine UI-Anpassung handelt, sollten Sie sich abmelden, sobald der View-Controller vom Bildschirm verschwindet.
Sie App-Service-Schicht
Hier ist es OK .removeObserver
innerhalb deinit zu haben(). Aber auch hier neige ich dazu, Ihnen zu empfehlen, genauer zu sein, wenn Sie die NSNotificationCenter
Benachrichtigungen abonnieren und abbestellen und sie in Start- und Stopp-Methoden Ihres Dienstes einfügen.
viewDidUnload war nie eine Option. Wann fügst du den Beobachter hinzu? – jrturton
Bin mir auch nicht sicher. Mein Darm sagt viewDidLoad, aber einige scheinen zu denken, Pairing viewWillAppear zum Hinzufügen und viewWillDisappear zum Entfernen. Andere haben erklärt, dass dealloc ein guter Ort zum Entfernen wäre. Ich dachte nur, das Entfernen in Deinit(), da die Klasse getötet wird, könnte eine gute Wahl sein. – nick