NSNotification in iPhone
-
25-10-2019 - |
Domanda
io mando NSSNotifcation ad un altro controller della vista in applicazione per iPhone, ma il suo metodo osservatore sempre avvisato due volte come il suo possibile Può uno guida mi
ho utilizzare questo codice per la notifica postale
[[NSNotificationCenter defaultCenter] postNotificationName:@"updateStatusOnFacebook" object:nil userInfo:nil];
e osservatore aggiunto
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(postToWall) name:@"updateStatusOnFacebook" object:nil];
Soluzione
Avete aggiunto l'osservatore due volte?
Quale metodo sta chiamando addObserver: selettore: oggetto: in? Se è in viewWillAppear allora questo potrebbe essere chiamato più di una volta.
Il metodo verrà chiamato lo stesso numero di volte in cui si è aggiunto un osservatore.
Prova questo:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"updateStatusOnFacebook" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(postToWall) name:@"updateStatusOnFacebook" object:nil];
L'altra ragione è che si potrebbe solo essere l'invio della notifica due volte:)
Altri suggerimenti
Ho avuto lo stesso problema affiorano, e letto questa domanda, ma sono riuscito a trovare solo una chiamata per aggiungere l'ovunque osservatore del progetto.
Nel nostro caso, l'osservatore è stata ??em> che si aggiunge due volte perché la metodo la linea è stata nel stava comportando chiamato per due volte.
Assicurati di passo attraverso il codice, rompendo la chiamata addObserver:selector:name:object
, per garantire che non si dispone di un inaspettato percorso di esecuzione in più per quella chiamata.