Je ne pense que c'est une bonne idée. Par exemple:
J'ai une très mauvaise connexion Internet, et votre application me montre l'écran de démarrage pendant quelques secondes. Donc je pense normalement que l'application va planter, ou quelque chose d'autre. Une meilleure approche serait de faire cela dans votre MainViewController, et montrer à l'utilisateur un écran Spinner/Load ou quelque chose comme ça.
Un bon moyen de faire des requêtes asynchrones dans swift est d'utiliser la (bonne) extension Alamofire. Surtout quand vous êtes nouveau sur iOS Swift.
https://github.com/Alamofire/Alamofire
Ensuite, dans votre viewDidLoad faire votre demande (dans ce cas, toujours comme fil d'arrière-plan)
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
// load here spinner/load screen
// alamofire request
Alamofire.request(.POST, "http://www.test.com/service", parameters: ["foo": "bar"])
.responseJSON { (req, res, json, error) in
....
Merci pour votre idée, mais je veux aller chercher des données pendant l'écran de démarrage. – user3141421
Et le thread ne jamais attendre une demande asynchrone, c'est pourquoi vous le rendre asynchrone (de sorte que l'interface utilisateur ne se bloque pas jusqu'à la fin de la demande) - c'est pourquoi votre splashscreen n'attendra pas votre réponse. – derdida
Et expliquez pourquoi vous souhaitez effectuer une requête synchrone (dans votre cas) pendant l'écran de démarrage. Vous voulez montrer à l'utilisateur sur le premier VieController des contenus de votre service? – derdida