En Java, puede suspender la ejecución del subproceso actual durante un período de tiempo utilizando Thread.sleep(). ¿Hay algo como esto en Objective C?¿Cuál es el equivalente de Thread.sleep() de Java en Objective-C/Cocoa?
Respuesta
Sí, hay +[NSThread sleepForTimeInterval:]
(Para que lo sepas para preguntas futuras, Objective-C es el lenguaje mismo;. La biblioteca de objetos (uno de ellos al menos) es cacao)
Por supuesto , también podría usar las llamadas estándar Unix sleep() y usleep(). (Si escribo Cocoa, me quedaría con el [NSThread sleepForTimeInterval:], sin embargo.)
¿Por qué estás durmiendo? Cuando duerme, está bloqueando la IU y también cualquier carga de URL de fondo que no esté en otros hilos (usando los métodos asíncronos NSURL todavía opera en el hilo actual).
Lo que realmente desea es performSelector: withObject: AfterDelay. Ese es un método en NSObject que puede usar para llamar a un método en algún intervalo predeterminado más tarde: programa una llamada que se realizará más adelante, pero todas las demás cosas que maneja el hilo (como la IU y las cargas de datos) aún continuar
Dormir es útil para fines de prueba. Puedo simular algunas demoras en la red para asegurarme de que mi aplicación responda correctamente. Actualmente estoy probando contra un servidor web local, así que todo es esencialmente instantáneo. – brantonb
Dormir es la forma incorrecta de probar los retrasos en la red. Mire la respuesta para esta pregunta http://stackoverflow.com/questions/1502060/iphone-intermittent-network-testing para ver cómo probar velocidades variables de redes en el simulador. Debido a que dormir el hilo principal bloquea todo, no estás simulando un retraso de red, sino más bien una suspensión de la aplicación. –
Dormir es útil para simular lo que se hace en una operación de combinación en un hilo JAVA. Usted duerme por 10 millis, verifica si el hilo está muerto, entonces puede destrabarlo. –
usleep() también se puede utilizar como he utilizado para interrumpir temporalmente el flujo actual a veces
Si utiliza NSThread sleepForTimeInterval (código comentado) para dormir, ir a buscar los datos serán bloqueados, pero + [NSThread sleepForTimeInterval: ] (método checkLoad) no bloqueará la obtención de datos.
Mi código de ejemplo de la siguiente manera:
- (void)viewDidAppear:(BOOL)animated
{
//....
//show loader view
[HUD showUIBlockingIndicatorWithText:@"Fetching JSON data"];
// while (_loans == nil || _loans.count == 0)
// {
// [NSThread sleepForTimeInterval:1.0f];
// [self reloadLoansFormApi];
// NSLog(@"sleep ");
// }
[self performSelector:@selector(checkLoad) withObject:self afterDelay:1.0f];
}
-(void) checkLoad
{
[self reloadLoansFormApi];
if (_loans == nil || _loans.count == 0)
{
[self performSelector:@selector(checkLoad) withObject:self afterDelay:1.0f];
} else
{
NSLog(@"size %d", _loans.count);
[self.tableView reloadData];
//hide the loader view
[HUD hideUIBlockingIndicator];
}
}
dormir para un solo segundos en Java:
Thread.sleep(1000);
dormir para un solo segundos en C Objetivo:
[NSThread sleepForTimeInterval:1.0f];
- 1. ¿Cuál es el equivalente de Thread.sleep() de Java en JavaScript?
- 2. ¿cuál es el equivalente de C# de static {...} en Java?
- 3. ¿Cuál es el impacto de Thread.Sleep (1) en C#?
- 4. ¿cuál es el equivalente .NET de @Deprecated en java?
- 5. ¿Cuál es el equivalente .NET de StringBuffer en Java?
- 6. ¿Cuál es el equivalente de LinkedHashSet (Java) en C#?
- 7. ¿Cuál es el equivalente de largo sin signo en Java
- 8. Thread.Sleep alternativa en Java
- 9. ¿Cuál es el equivalente de Java de AggregateException de .net?
- 10. ¿Cuál es el equivalente de Scala del ClassName.class de Java?
- 11. ¿Cuál es el equivalente .NET de NumberFormatException de Java?
- 12. ¿Cuál es el equivalente de Ruby para StringReader de Java?
- 13. ¿Cuál es el equivalente de Java 1.4.2 de Pattern.quote()
- 14. ¿Cuál es el equivalente de C# de Java DecimalFormat?
- 15. ¿Cuál es el equivalente de Java de ManualResetEvent?
- 16. ¿Cuál es el equivalente de Smalltalk de Java estático?
- 17. ¿Cuál es el equivalente Java de un objeto Scala?
- 18. ¿Cuál es el equivalente Python de Tomcat?
- 19. ¿Cuál es el equivalente Java de PHP var_dump?
- 20. ¿Cuál es el C# equivalente a la instancia de Java()?
- 21. ¿Cuál es el equivalente de Java a este preg_replace?
- 22. ¿Cuál es el equivalente a .NET SortedDictionary, en Java?
- 23. ¿Existe un equivalente a Thread.Sleep() en VBA
- 24. Java - Thread.sleep en el método principal
- 25. ¿Cuál es la función equivalente de 'nth_element' en Java?
- 26. Java: LockSupport.parkNanos vs Thread.sleep (...)
- 27. ¿Cuál es el equivalente Ruby de "pythonic"?
- 28. ¿Cuál es el equivalente Monotouch de dealloc?
- 29. ¿Cuál es el equivalente de argv [0]?
- 30. ¿Cuál es el equivalente de sincronizado en Objective-C?
Thnx !
para referencia futura, la definición es en realidad + [NSThread sleepForTimeInterval:] (entonces, usado como [NSThread sleepForTimeInterval: 0.1]). – TinkerTank
Esto es perfecto. ¡Gracias! Acabo de terminar mis bloques de animación y funcionó a las mil maravillas. – RileyE
¿Qué hay de dormir en Therad principal? – Dagon