Quelle est la principale différence entre NSURLConnection et NSURLSession
NSURLSession est nouveau réseau SDK que NSURLConnection d'Apple. 3e choix est CFNetwork.
Question ici est de comprendre la plus grande différence entre eux, afin de comprendre pourquoi Apple est en pleine évolution comme celles-ci.
Grâce
Vous devez vous connecter pour publier un commentaire.
L'ensemble du modèle est différent. NSURLSession est conçu autour de l'hypothèse que vous aurez beaucoup de demandes qui ont besoin de configuration similaire (norme définit des en-têtes, etc.), et rend la vie beaucoup plus facile si vous le faites.
NSURLSession prend aussi en charge les téléchargements en arrière-plan, qui permettent de poursuivre le téléchargement de ressources, alors que votre application n'est pas en cours d'exécution (ou quand il est en arrière-plan sur iOS). Pour certains cas d'utilisation, c'est aussi une grande victoire.
NSURLSession fournit également regroupement de demandes, le rendant facile pour annuler toutes les demandes associées à une unité de travail, telles que l'annulation de toutes les charges associés au chargement d'une page web lorsque l'utilisateur ferme la fenêtre ou onglet.
NSURLSession fournit également plus agréable interfaces de demande de données à l'aide de blocs, en ce qu'elle permet de les combiner avec les déléguer à des méthodes d'authentification personnalisée de manutention, de rediriger la manipulation, etc., alors qu'avec NSURLConnection, si vous tout d'un coup réalisé que vous besoin de faire ces choses, vous avez dû restructurer le code afin de ne pas utiliser le bloc à base de rappels.
NSURLConnection
Un groupe d'éléments interdépendants qui forment la base de l'URL du Système de Chargement: NSURLRequest, NSURLResponse, NSURLProtocol, NSURLCache, NSHTTPCookieStorage, NSURLCredentialStorage, et son homonyme, NSURLConnection
NSURLRequest les objets sont transmis à un NSURLConnection objet. Le délégué (conforme à l'ancienne informel et protocoles) répond de manière asynchrone comme un NSURLResponse, et tous les NSData sont envoyés à partir du serveur
Avant qu'une demande est envoyée au serveur, la mémoire cache partagée est consulté, et en fonction de la politique et de la disponibilité, une réponse en cache peuvent être retournés immédiatement et de façon transparente. Si pas de réponse en cache est disponible, la demande se fait avec l'option de cache sa réponse pour toutes les requêtes suivantes.
Dans le processus de négociation d'une requête à un serveur, ce serveur peut émettre une authentification par défi, qui est géré automatiquement par la partagé cookie ou de stockage d'informations d'identification, ou par la connexion délégué. Les demandes sortantes pourrait également être interceptés par un régime enregistré d'NSURLProtocol objet transparente de changement de comportement de chargement si nécessaire.
NSURLSession
se réfère à un groupe de l'interdépendance des classes, en plus de l'éponyme de la classe NSURLSession. NSURLSession est constituée des mêmes morceaux comme avant, avec NSURLRequest, NSURLCache, et autres, mais remplace NSURLConnection avec NSURLSession, NSURLSessionConfiguration, et trois sous-classes de NSURLSessionTask: NSURLSessionDataTask, NSURLSessionUploadTask, et NSURLSessionDownloadTask.
NSURLSessionTask est un abrégé sous-classe, avec trois sous-classes concrètes qui sont utilisés directement: NSURLSessionDataTask, NSURLSessionUploadTask, et NSURLSessionDownloadTask. Ces trois classes encapsulent les trois tâches de mise en réseau des applications modernes: de l'extraction de données, comme JSON ou XML, et de téléversement et de téléchargement de fichiers.pour plus
Différence entre NSURLSession et NSURLConnection
NSURLSession
NOTE : (NSURLConneciton est Obsolète dans OS X 10.11 et iOS 9.0)
1) NSURLSession est conçu autour de l'hypothèse que vous aurez beaucoup de demandes qui ont besoin de configuration similaire (norme définit des en-têtes, etc.), et rend la vie beaucoup plus facile.
2) NSURLSession prend aussi en charge les téléchargements en arrière-plan,ce qui rend possible pour continuer le téléchargement de ressources pendant que votre application n'est pas en cours d'exécution ou lorsqu'il est en arrière-plan sur iOS.
3) NSURLSession fournit également regroupement de demandes,Décisions est facile d'annuler toutes les demandes associées à une unité de travail, telles que l'annulation de toutes les demandes associées à une unité de travail,telles que l'annulation de toutes les charges associés au chargement d'une page web lorsque l'utilisateur ferme la fenêtre ou l'onglet
4) NSURLSession fournit également plus agréable interfaces de demande de données à l'aide de blocs,n qu'il vous permet de les combiner avec les déléguer à des méthodes d'authentification personnalisée de manutention, de rediriger la manipulation, etc.
NSURLSessionConfiguration Types
1) defaultSessionConfiguration
Creates a default configuration object that uses the disk-persisted global cache, credential and cookie storage objects.
2) ephemeralSessionConfiguration
Similar to the default configuration, except that all session-related data is stored in memory. Think of this as a “private” session.
3) backgroundSessionConfiguration
Lets the session perform upload or download tasks in the background. Transfers continue even when the app itself is suspended or terminated
Types de NSURLSessionTasks
1) les Données des tâches (NSURLSessionDataTask)
De données tâches sont utilisés pour la demande de données à partir d'un serveur, telles que des données JSON. Ces données sont généralement stockées dans la mémoire et ne touche jamais le Système de Fichiers, Nous pouvons utiliser NSURLSessionDataTask.
2) Télécharger Tâches (NSURLSessionUploadTask)
Télécharger les tâches sont utilisés pour télécharger des données à une destination distante. Nous pouvons utiliser NSURLSessionUploadTask.
3)Les Tâches De Téléchargement (NSURLSessionDownloadTask)
Le téléchargement d'un fichier et le Stocker dans un emplacement temporaire. Nous pouvons utiliser NSURLSessionDownloadTask.
Principale différence entre NSURLSession et NSURLConnection
NSURLConnection:
si nous avons une connexion ouverte avec NSURLConnection et le système d'interruption de notre Application, quand notre Application va à la mode arrière-plan, tout ce que nous avons reçues ou envoyées ont été perdus.
NSURLSession
résoudre ce problème et aussi nous donner de processus de téléchargements. Gérer le processus de connexion, même lorsque nous n'avons pas accès. Vous aurez besoin d'utiliser
Pour les informations de Détails, veuillez vous référer différence entre NSURLSession et NSURLConnection