iOS5 NSURLConnection méthodes obsolètes
Je suis en train d'écrire une application iOS qui fait des requêtes asynchrones pour obtenir des données sur le réseau. Il semble que beaucoup de gens vous recommandons d'utiliser NSURLConnection pour cela, et mentionnent fréquemment le délégué de la méthode de connexion:didReceiveData:.
Malheureusement, je ne peux pas pour la vie de me trouver où cette méthode du délégué est documenté. Pour l'un, il n'est pas dans le protocole de référence pour NSURLConnectionDelegate. Il est répertorié dans le NSURLConnection de Référence de Classe, mais a apparemment été abandonnée depuis iOS5. La documentation ne permet pas d'expliquer pourquoi il était obsolète, ou de ce que les développeurs doivent utiliser à la place pour obtenir une fonctionnalité similaire.
Ce qui me manque? Beaucoup de ce que j'ai lu semble impliquer que de grands changements ont été apportés à NSURLConnection pour iOS5. Où ces changements sont-ils documentés? La documentation est de déléguer les méthodes complète?
Grâce
- Inutile de dire que ces méthodes sont maintenant répertoriés dans le NSURLConnectionDataDelegate Protocole de Référence.
Vous devez vous connecter pour publier un commentaire.
De pêche autour de l'en-tête des fichiers me dit que les méthodes ont été déplacés à partir d'un protocole informel (qui est obsolète Obj-C motif) dans un formel délégué protocole appelé
NSURLConnectionDataDelegate
c'est dansNSURLConnection.h
, mais ne dispose pas d'une documentation publique.Le reste de la documentation conserve à l'aide de méthodes comme avant, donc je suppose que c'est une omission dans la documentation. I. e. les méthodes (pour la plupart) ne vont pas n'importe où, ils étaient juste remanié en plusieurs protocoles et l'équipe de documentation a été relâchement. Essayez de faire votre délégué objet conforme au protocole approprié, et de mettre en œuvre les méthodes avec les signatures à partir du fichier d'en-tête.
La Documentation est en effet un gâchis, bien que regardant le changelog de 4,3 à 5.0 pour NSURLConnection.h:
Retiré
Ajouté
Il semble donc que ces fonctions sont en effet toujours là. Il suffit d'ajouter les protocoles de votre @interface de déclaration et vous devriez être bon d'aller.
J'ai essayé la nouvelle NSURLConnectionDownloadDelegate, être averti que, si ces méthodes sont présents dans votre délégué, votre NSURLConnectionDataDelegate méthodes ne sera PAS appelé.
J'ai aussi eu la question de l'ouverture de la destinationURL, iOS me disait que le fichier n'existe pas, bien que la documentation indique que le fichier est garanti lors de l'appel de méthode.
La documentation est un @$@#$ mess. C'est la vraie histoire.
La Documentation sur
NSURLConnection
, comme l'écrit, vous laisse au sec.La première partie de la documentation indique d'utiliser diverses méthodes dans le
NSURLConnection
protocole (commeconnection:didReceiveData:
) pour gérer les données. Si vous cliquez sur l'une de ces méthodes dans la vue d'ensemble, il vous amène à une liste de MÉTHODES OBSOLÈTES!)L'histoire vraie que j'ai pu reconstituer, c'est que la plupart des méthodes d'autrefois dans
NSURLConnectionProtocol
ont été déplacés vers un nouveau protocole appeléNSURLConnectionDataProtocol
. Malheureusement, ce nouveau protocole n'est pas documenté, ou il n'est pas indexé, donc vous ne pouvez pas le trouver. Ce qui revient à la même chose.)Dans d'autres nouvelles intéressantes, il y a apparemment un nouveau protocole appelé
NSURLConnectionDownloadDelegate
. Il sonne commeNSURLConnection
pour iOS est l'ajout de certaines fonctionnalités qui sont disponibles dansNSURLDownload
dans MacOS. LeNSURLConnectionDownloadDelegate
protocole EST documenté.On pourrait penser que la dépréciation de ces méthodes à partir de NSURLConnection justifierait une sorte de explainer, mais je n'ai pas encore trouvé. Le meilleur que j'ai pu faire jusqu'ici, Apple URL de Chargement Guide de Programmation Système:
qui implique un protocole informel.