NSNotifikation im iPhone
-
25-10-2019 - |
Frage
Ich sende die NSSNotifcation an einen anderen Ansichts -Controller in der iPhone -App, aber seine Beobachtermethode wird zweimal so gut wie möglich benachrichtigt
Ich habe diesen Code verwendet, um die Benachrichtigung zu veröffentlichen
[[NSNotificationCenter defaultCenter] postNotificationName:@"updateStatusOnFacebook" object:nil userInfo:nil];
und fügte Beobachter hinzu
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(postToWall) name:@"updateStatusOnFacebook" object:nil];
Lösung
Haben Sie den Beobachter zweimal hinzugefügt?
Welche Methode nennen Sie Addobserver: Selector: Objekt: IN? Wenn es in ViewSwillAppear ist, kann dies mehr als einmal aufgerufen werden.
Ihre Methode wird so genannt, dass Sie einen Beobachter hinzugefügt haben.
Versuche dies:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"updateStatusOnFacebook" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(postToWall) name:@"updateStatusOnFacebook" object:nil];
Der andere Grund ist, dass Sie die Benachrichtigung möglicherweise zweimal senden :)
Andere Tipps
Ich hatte das gleiche Problem, das das gleiche Problem zubereiten und diese Frage las, konnte aber nur den einen Anruf finden, um den Beobachter überall im Projekt hinzuzufügen.
In unserem Fall der Beobachter war zweimal hinzugefügt werden, weil die Methode Die Linie war zu sein genannt zweimal.
Stellen Sie sicher addObserver:selector:name:object
Rufen Sie an, um sicherzustellen, dass Sie keinen unerwarteten zusätzlichen Ausführungspfad zu diesem Anruf haben.