NSURLConnection ou NSURLSession
muqaddar
Administrateur
Salut,
Je suis en train de passer à AFNetworking 2.x.
Mon application ne sera plus compatible qu'avec iOS 7 (et iOS 8...). Vu que le futur, côté requêtes réseaux, semble être destiné à NSURLSession, y-a-til un intérêt quelconque à utiliser encore NSURLConnection ? Y compris pour une bête petite requête GET ?
D'autant plus qu'on sera de plus en plus amener à connecter nos apps en background (et même à faire de la synchro) et que NSURLSession semble être idéal pour cela ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
perso, j'ai tout basculé en NSURLSession depuis que je suis passé à AF2
Mais c'est vrai que NSURLSession est quand même un peu la nouvelle norme / nouvelle façon de faire, et ça t'apporte de la flexibilité supplémentaire si un jour tu veux passer aux Background Fetch & co, ça t'ouvre de nouvelles possibilités.
Pour les nouveaux projets (du moins ceux qui sont iOS7 minimum) je conseille de passer directement à NSURLSession. Pour les existants, ça peut être une bonne idée de convertir son code existant, mais ce n'est pas primordial non plus si ça marche déjà avec [NSURLConnection sendAsynchronousRequest:queue:completionHandler:].
J'ai commencé à tout passer sous NSURLSession.
Tiens, je viens de voir qu'on ne pouvait pas utiliser NSURLSessionDataTask avec backgroundSessionConfiguration. Donc ce dernier mode ne peut fonctionner qu'avec du download et upload de fichier. Un peu déçu du coup. Donc si t'as un JSON de 5 Mo sous forme de data à télécharger (on sait jamais...) quelle est la méthode officielle pour faire du background sans encombre ?
Je voulais m'arranger pour pas avoir des fichiers en lecture/écriture à gérer, mais c'est une idée en effet. Je pourrais même m'arranger pour faire le parsing un peu quand je veux du coup (quand elle résume son état).
Je suis en train de passer ma synchro sous NSURLSession ET par la même occasion en synchro automatique ET en background.
ça fait 3 nouveautés à gérer. Beau challenge. Il y a des allers-retours avec le serveur. Et beaucoup d'images à télécharger.
La grande inconnue c'est de savoir à quel rythme lancer les synchros en background.
L'inconvénient de ce que tu me dis, ça serait que même pour un bête login, il faudrait que je télécharge un fichier qui renvoie OK ou KO... (plutôt que la même chose en data)... pourquoi pas.
Par contre, il n'y a pas d'équivalent de ça:
avec NSURLSessionDownloadTask.
Or, c'est bien pratique pour envoyer un dico de données à la volée (parameters).
Du coup, je suis obligé d'utiliser:
Et d'envoyer les paramètres "à la mano" en NSData:
via NSMutableURLRequest dans setHTTPBody.
Où alors, j'ai loupé une méthode de AFNetworking ?