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];
War es hilfreich?

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.

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