2010-07-14 10 views

Respuesta

20

performSelector simplemente hacer lo que dice, por lo general lo haría usa esto cuando quieras ejecutar una se lector que usa su nombre como NSString, esto es útil en situaciones en las que crea programáticamente el nombre de un selector. Si está familiarizado con Java, puede compararlo libremente con la reflexión.

performSelectorInBackground ejecutarán el selector de forma asíncrona en un nuevo hilo en el fondo para que pueda enviar tareas largas sin bloquear la interfaz de usuario

performSelectorOnMainThread simplemente realizar el selector de aplicaciones de hilo principal como lo describen. Esto tiene el potencial de congelación de la interfaz de usuario, es posible reservarlo para realizar tareas que actualizan la interfaz de usuario de manera explícita

EDIT:

Algunos más en performSelectorOnMainThread, esto es muy útil cuando se está llamando desde un hilo corriendo en el fondo. Un ejemplo podría ser que tiene un hilo de procesamiento de una tarea en segundo plano y desea actualizar una etiqueta de estado, sólo los hilos que se ejecutan en el hilo principal se actualizará la interfaz de usuario por lo que llamarían su selector que actualiza la etiqueta de estado usando performSelectorOnMainThread

+0

Bro, ¿qué quieres decir con el potencial de congelar el ui? –

+0

Todas las tareas y eventos de UI se ejecutan en el hilo principal, por lo que si lo bloquea con alguna otra tarea de larga ejecución, su UI se "congelará", su usuario no podrá interactuar con su aplicación hasta que la tarea finalice. –

+0

¿Abajo votar por drive? ¿Por qué el voto hacia abajo? –

Cuestiones relacionadas