有什么方法可以将 [NSData bytes] 的值转换为 float ,以便我可以将其添加到进度栏吗?
谢谢
凯文
最佳答案
简而言之:[数据长度]
这是我使用的下载栏工作原理的片段。
// 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];
}
如果您需要更多信息,请告诉我。
[10 月 26 日添加以解决您的其他问题:]
我没有使用过 NSStream。我的示例来自异步 NSURLConnection 示例。因此,让我们忽略我之前的代码示例。
您提到您有[NSData bytes]
。 [NSData length]
应该返回您拥有的数据量。假设您知道要下载的大小:
float progressPercentage = [yourNSData length]/knownFileSize;
应该为您提供更新进度条所需的百分比。然后您可以设置进度条:
[yourProgressBar setProgress:progressPercentage];
关于iphone - NSData 字节浮点 - iPhone SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4020206/