Cómo ejecutar un código que no sea el hilo principal en el objetivo C o Swift

La forma más sencilla es crear una cola Grand Central Dispatch y ejecutar un cierre de forma asincrónica en ella. Ejemplo de Toy Swift:

Despacho de importación

let queue = DispatchQueue ()

func doThingInBackground () {
queue.async {
hacer algo()
}
}

Objective-C tiene una sintaxis y nombres ligeramente diferentes (dispatch_create, dispatch_async, etc.) pero funciona básicamente de la misma manera.

GCD mantiene un grupo de subprocesos de trabajo en el que distribuye trabajos, un trabajo por cola a la vez, coordinando con el sistema operativo para garantizar que su grupo tenga el tamaño adecuado para la carga de trabajo de la máquina en su conjunto. También incluye mucho más que colas en serie y elementos de trabajo asíncronos: semáforos, manejo de eventos, E / S asíncrona, ejecución retrasada, colas concurrentes, elementos de trabajo sincrónicos y de barrera, almacenamiento local en cola, agrupación de elementos de trabajo, todo tipo de cosas. . Y las colas son lo suficientemente livianas como para que los desarrolladores las usen en lugar de bloqueos.

Vea la documentación para más información: Despacho | Documentación del desarrollador de Apple

Echa un vistazo a la gran API de despacho central.

More Interesting

¿Cuáles son los foros de desarrollo de software más grandes / mejores para iPhone / iPad / solo Apple?

¿Necesita aprender programación orientada a objetos antes de aprender el objetivo-c? En caso afirmativo, ¿cuál es el mejor libro para empezar?

¿Cuánto tiempo debería llevar a un desarrollador móvil experimentado portar una aplicación de iOS a Android?

¿Cómo puede ser productivo un chat de Slack con 4000 desarrolladores de iOS?

¿Cuál es la forma más efectiva de promover aplicaciones móviles para Android e iOS?

¿Quiénes son los mejores creadores de aplicaciones para iPhone en Quora?

Cómo administrar los permisos de aplicaciones en el desarrollo de aplicaciones iOS

¿Cuál es la mejor manera de aprender iOS 7 y Swift como principiante en el mundo de la programación?

¿Cómo puede alguien desarrollar una aplicación social para iOS sin ayuda?

¿Por qué un iPhone nunca se retrasa o ralentiza incluso después de años de uso, mientras que el Android se cuelga mucho? ¿Hay alguna especialidad en la programación de iOS?

Si comienzo el desarrollo del juego en iOS, ¿vale la pena comenzar con Open GL o debería saltar directamente a Metal API?

Siendo realistas, ¿cuánto tiempo me tomaría poder crear mis propias aplicaciones de iOS?

Cómo obtener una opción de desarrollo en Linux para iniciar Linux desde cero

Si quiero agregar una descripción de la aplicación para la tienda de iOS en, digamos, japonés, ¿también necesito traducir y localizar de manera más general una aplicación de idioma inglés al japonés?

¿Qué es un protocolo hashable en iOS Swift? ¿Cuando lo usas?