developer - iOS-Garantizar la ejecución en el hilo principal
ios frameworks (4)
Esta pregunta ya tiene una respuesta aquí:
- Compruebe si el hilo actual es el hilo principal 11 respuestas
Quiero saber cómo llamar a mi function
en el hilo principal .
¿Cómo me aseguro de function
se llame a mi function
en el hilo principal ?
(Esto sigue a una question previa mía).
¿Hay alguna regla que pueda seguir para asegurarme de que mi aplicación ejecute mi propio código solo en el hilo principal?
Por lo general, no es necesario que haga nada para garantizar esto; su lista de cosas suele ser suficiente. A menos que esté interactuando con alguna API que genere un hilo y ejecute su código en segundo plano, se ejecutará en el hilo principal.
Si quieres estar realmente seguro, puedes hacer cosas como
[self performSelectorOnMainThread:@selector(myMethod:) withObject:anObj waitUntilDone:YES];
para ejecutar un método en el hilo principal. (También hay un equivalente GCD).
Creo que esto es genial, aunque en general es una buena forma dejar a la persona que llama de un método responsable de garantizar que se llame al hilo correcto.
if (![[NSThread currentThread] isMainThread]) {
[self performSelector:_cmd onThread:[NSThread mainThread] withObject:someObject waitUntilDone:NO];
return;
}
Esto lo hará:
[[NSOperationQueue mainQueue] addOperationWithBlock:^ {
//Your code goes in here
NSLog(@"Main Thread Code");
}];
¡Espero que esto ayude!
Cuando usas iOS> = 4
dispatch_async(dispatch_get_main_queue(), ^{
//Your main thread code goes in here
NSLog(@"Im on the main thread");
});