Eccoci con un nuovo tips di programmazione iPhone veloce veloce. Volete avviare un metodo dopo un tempo prestabilito espresso in secondi? Allora performSelector può fare al caso vostro. Vi anticipiamo che quello che andiamo a mostrarvi funziona egregiamente, anche se questo sistema, di fatto, non è molto preciso. Non entriamo nei dettagli, vi basti sapere che se non vi interessa la precisione assoluta, allora potete affidarvi alle poche righe di codice mostrate più avanti.
Ecco di cosa stiamo parlando:
performSelector:withObject:afterDelay:
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay
Parameters
Nel dettaglio:
aSelector
Identifica il metodo da invocare. Questo dovrebbe avere un unico argomento di tipo id, o essere senza argomenti.
anArgument
L’eventuale argomento da passare al metodo quando questo viene invocato. nil nel caso in cui il metodo non richieda l’argomento.
delay
Il tempo minimo che deve passare prima che venga inviato il messaggio (di chiamata al metodo). Impostare il delay a 0 non avvierà necessariamente il metodo immediatamente. Verrà comunque avviato il prima possibile, con un margine minimo di errore.
Eccovi un piccolo esempio:
[self performSelector:@selector(mioMetodo) withObject:nil afterDelay:5];
(void)mioMetodo{
// Codice del vostro metodo
}
In questo esempio mioMetodo verrà avviato dopo 5 secondi (o poco più).
Potete vedere un esempio pratico di quanto descritto nel nostro Tutorial numero 25, in cui gestiamo la durata di una Splash Screen con questo metodo.










One Response to “TIPS#006 – Esecuzione automatica di un metodo dopo un tempo prestabilito”
21 Marzo 2011
FabioSalve,
se vorrei che il tempo non sia in secondi ma ogni 24 ore,oppure ad un ora specifica per autosalvataggio dei dati;