2010-11-23 5 views
1

Je dois lire NSURL Chargement des données en pourcentage.NSURL Chargement des données en pourcentage Valeur

En d'autres termes, je souhaite savoir combien de données en pourcentage sont chargées sur le temps de chargement de l'URL. Supposons qu'une URL prenne 30 secondes pour charger complètement les données, je veux savoir en 15 secondes combien de pourcentages de données sont chargés dans ma chaîne, et 20 secondes combien de pourcentages de données sont chargés dans ma chaîne, comme ceci. avoir besoin.

Répondre

1

Tout d'abord, vous devrez utiliser NSURLConnection. Dans la mise en œuvre de son délégué comprennent la méthode suivante:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLResponse *)response { 
    long long contentLength = [response expectedContentLength]; 
    ... 
} 

Notez que la seule façon de savoir combien d'octets le serveur va revenir est de récupérer la valeur de sa réponse HTTP. Si vous trouvez que expectedContentLength renvoie -1 (et vous devriez être préparé pour cela), le serveur ne renvoie pas une valeur significative pour la taille du contenu téléchargé, peut-être parce qu'il ne prend pas en charge la fonctionnalité. Dans un tel cas, vous devriez recourir à d'autres moyens pour obtenir la taille de l'octet.

+0

Salut, j'ai eu la valeur -1. – Velmurugan

+0

Si vous pouvez configurer votre serveur HTTP pour toujours envoyer le champ Content-Length, vous devriez. Sinon, vous pouvez afficher un indicateur de progression indéterminé ou essayer de créer votre propre API de serveur qui vous indiquera la taille de la ressource. Cela dit, être prêt à afficher un indicateur de progression indéterminé est très utile lorsque vous n'avez pas le contrôle ultime du serveur. – Costique

Questions connexes