Se ho una vista con un performSelector set a fuoco dopo un ritardo:Come uccidere un selettore che è impostato per sparare dopo un ritardo (su iPhone)?
[self performSelector:@selector(generateBall) withObject:NULL afterDelay:1.5];
... ma io removeFromSuperview quella vista prima che i fuochi di selezione (per esempio, a causa di interazione con l'utente), allora il mio crash app .
C'è un modo per uccidere il selettore ritardato nel metodo dealloc per quella vista?
EDIT:
Ho provato sia:
[[NSRunLoop mainRunLoop] cancelPerformSelector:theBall target:self argument:nil];
e
[[NSRunLoop currentRunLoop] cancelPerformSelector:theBall target:self argument:nil];
e mentre sia il lavoro (che mi permette di caricare una nuova vista), caricare la vista precedente estremità a darmi uno schermo grigio.
Non sono stato in grado di trovare alcun tutorial o altre informazioni su cancelPerformSelector diversi da quelli dei documenti Apple che sono stati elencati e la documentazione sui thread e sui loop di esecuzione sembra essere molto contorta (soprattutto perché non elencano lavoro esempi di codice, che mi renderebbero più facile il passaggio e la comprensione di ciò che stava accadendo).
Grazie per l'aggiunta dei collegamenti. – kperryua
Nessun problema. Hai bisogno del rappresentante più di me =). –
Qualche idea su dove potrei vedere un esempio di codice funzionante che li utilizza? Questo è tutto ciò che ho trovato finora ... http://www.oomori.com/cocoafw/Foundation/NSRunLoop/cancelPerforrsWithTarget.html –