Y at-il un moyen de convertir la valeur d'un [NSData octets] en un flottant afin que je puisse l'ajouter à une barre de progression?NSData Octets to Float - SDK iPhone
Merci,
Kevin
Y at-il un moyen de convertir la valeur d'un [NSData octets] en un flottant afin que je puisse l'ajouter à une barre de progression?NSData Octets to Float - SDK iPhone
Merci,
Kevin
En bref: [data length]
Voici l'extrait de la façon dont la barre de téléchargement que j'utilise des œuvres.
// Can get called numerous times during download process
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
// Accumulate incoming data into mutable data object
[fileData appendData:data];
byteCount += [data length];
float progress = byteCount/(mapToDownload.fileSize);
[self performSelectorOnMainThread:@selector(updateProgress:) withObject:[NSNumber numberWithFloat:progress] waitUntilDone:NO];
}
Faites-moi savoir si vous avez besoin de plus d'informations.
[Ajouté le 26 octobre pour répondre à vos autres questions:]
Je n'ai pas travaillé avec NSStream. Mon exemple provient d'un exemple NSURLConnection asynchrone. Par conséquent, ignorons mon exemple de code précédent.
Vous avez mentionné que vous avez [NSData bytes]
. [NSData length]
devrait vous renvoyer combien de données vous avez. En supposant que vous connaissez la taille à télécharger puis:
float progressPercentage = [yourNSData length]/knownFileSize;
devrait vous donner le pourcentage nécessaire pour mettre à jour la barre de progression. Vous pouvez ensuite définir votre barre de progression:
[yourProgressBar setProgress:progressPercentage];
Quelles sont les variables fileData et byteCount? J'utilise un NSStreamOutput quand je reçois les données, donc je n'utilise pas appendData. Serait-il toujours prudent d'envisager de l'utiliser quand j'ai NSStreamOutput en même temps? – lab12
Merci pour la nouvelle réponse! – lab12
Aucun prob. Heureux que c'était utile. – dredful