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];
È stato utile?

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 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top