Une coroutine est une technique de mise en œuvre spécifique. Ce que vous voulez faire est de travailler en arrière-plan sans bloquer votre interface utilisateur.
Il existe deux techniques principales pour ce faire sur iOS et Mac OS X: Exécuter des boucles et des threads.
Si vous téléchargez simplement des données via une URL HTTP, vous pouvez démarrer le téléchargement et lui demander de vous avertir lorsque vous avez terminé ou quand il a des données pour vous. Le téléchargement d'URL gérera sa propre concurrence en utilisant la boucle d'exécution en cours, et votre application pourra interagir avec l'utilisateur. Si vous devez effectuer votre propre traitement, vous pouvez le faire en utilisant NSOperationQueue et NSOperatipn, en utilisant GCD (dispatch_ *), ou en utilisant directement NSThread. Si vous faites cela, vous devez comprendre la programmation simultanée, protéger l'état partagé en utilisant des mutex (verrous) et d'autres mécanismes de synchronisation, et ainsi de suite.
Pour un téléchargement d'URL, utilisez le support de simultanéité de NSURLDownload. Pour plus de travail de traitement, essayez NSOperation.