2011-09-03 7 views

Odpowiedz

24

można użyć jednego z nich: sleep(1); lub wait(1);

Albo można użyć [NSThread sleepForTimeInterval:1.0]

I jest również performSelector:withObject:afterDelay

+3

Albo, umieść pozostałe zadania w bloku i zaplanuj je z 'dispatch_after';) – Abizern

+3

Spanie prawie na pewno nie jest dobrym pomysłem. Jeśli Twinkle nie wie, jak już używać funkcji "uśpienia", wątpię, aby e używało wątku tła. Oznacza to wstrzymanie wątku interfejsu użytkownika. –

+1

Próbuję wstrzymać wątek tła. – Twinkle

2

Nowszy na iOS są bloki zakończenia. Jeśli chcesz wykonać jakąś akcję po wykryciu kontrolera widoku, możesz teraz użyć bloków. Niedawno użyłem tej metody, aby zamknąć kontrolkę widoku komponentu widoku, a następnie w razie powodzenia uruchom kontroler widoku.

Stary sposób:

[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

Innym sposobem, aby to zrobić:

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

sleep() i wait() są czasami patrzył w dół, ale tak długo, jak rozumiesz, co się dzieje, użyj go na wolnej woli

Powiązane problemy