2011-09-03 19 views
10

Nel mio programma iOS, voglio che una funzione si fermi per 1 secondo. Che codice devo scrivere per fare questo?Come mettere in pausa il tempo nella programmazione iOS

+8

È difficile rispondere correttamente senza sapere perché vuoi fermarti per un secondo. A meno che tu non stia attento: bloccherai solo l'interfaccia utente per un secondo che è un'esperienza utente molto male. – Abizern

risposta

24

È possibile utilizzare uno di questi: sleep(1); o wait(1);

Oppure si può utilizzare [NSThread sleepForTimeInterval:1.0]

e c'è anche performSelector:withObject:afterDelay

+3

Oppure, metti il ​​resto delle attività in un blocco e pianificalo con 'dispatch_after';) – Abizern

+3

Dormire non è quasi certamente una buona idea. Se Twinkle non sa come usare 'sleep' già, dubito che e stia usando un thread in background. Ciò significa mettere in pausa il thread dell'interfaccia utente. –

+1

Sto provando a mettere in pausa un thread in background. – Twinkle

2

più recente di iOS sono blocchi di completamento. Se è necessario eseguire qualche azione dopo che un controller di visualizzazione è spuntato, ad esempio, ora è possibile utilizzare i blocchi. Recentemente ho usato questo metodo per chiudere un messaggio di composizione in un controller di visualizzazione e quindi inserire il controller di visualizzazione corrente in caso di successo.

Vecchio modo:

[controller dismissModalViewControllerAnimated:YES]; 
// Use an NSThread or performSelector:withObject:afterDelay 

New Way:

[controller dismissViewControllerAnimated:YES completion:^{ 
    if (result != MessageComposeResultCancelled){ 
    // If cancelled remain on current screen, else pop to parent view controller 
    [self.navigationController popViewControllerAnimated:YES]; 
    } 
}]; 
3

Un altro modo per farlo è:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{//Place code here}); 

sleep() ed attendere() sono a volte guardava dall'alto in basso ma fino a quando capisci che cosa sta succedendo usalo a tuo piacimento

Problemi correlati