Legen Sie einen Haltepunkt auf dem NSNotificationCenter
-
12-10-2019 - |
Frage
Gibt es eine Möglichkeit auf dem NSNotificationCenter zu brechen einen Hinweis mit einem bestimmten Namen zu veröffentlichen? Ich habe eine Klasse, die aus irgendeinem Grunde nicht en erwarteten Note erhalten ...
Bearbeiten zur Klarstellung:
Ich habe einen Beobachter für die MPMoviePlayerPlaybackDidFinishNotification hinzugefügt, aber aus irgendeinem Grunde scheint es, als ob die Mitteilung nicht wie erwartet gesendet. Ein normaler Fehler ist hier, dass mein Objekt aus irgendeinem Grunde selbst als Beobachter abgemeldet hat (auch wenn ich meinen Code auf dem Teil suchen gültig zu finden). So, das war meine Absicht, ob es möglich ist, brechen auf den NSNotificationCenter tatsächlich vorbei an einem NotificationName eines bestimmten Typs, in diesem Fall MPMoviePlayerPlaybackDidFinishNotification ...
Lösung
Fügen Sie einen Haltepunkt in Xcode mit dem Namen "- [NSNotificationCenter postNotification:]" mit dem Feld im Screenshot angezeigt. Denken Sie daran, dass dies aufhören für alle Meldung veröffentlicht, so möchten Sie vielleicht der Debugger haben protokollieren die Argumente und AUTO-.
Andere Tipps
Sie können die Bruchstelle in Methoden setzen, die Sie für bestimmtes Ereignis nennen. z.
NSNotificationCenter * nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(keyboardWillShow:) name: UIKeyboardWillShowNotification object:nil];
[nc addObserver:self selector:@selector(keyboardWillHide:) name: UIKeyboardWillHideNotification object:nil];
Hier können Sie Bruchstelle in keyboardWillShow und keyboardWillHide Methode, die Aufforderung an die Zeit der Tastaturereignisse verwendet werden.
So Sie gültige Ereignisnamen und gültigen Objektnamen angeben müssen.
Bei Textfeld als ein Objekt, das Sie wie folgt verwenden
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self
selector:@selector (handle_TextFieldTextChanged:)
name:UITextFieldTextDidChangeNotification
object:self.lockTextField];
so denke ich, Sie Mitteilung in der richtigen Art und Weise hinzufügen müssen.