NSData Bytes to Float - iPhone SDK

时间:2010-10-26 02:15:05

标签: iphone floating-point byte nsdata

有什么方法可以将[NSData字节]的值转换为浮点数,以便我可以将它添加到进度条中?

谢谢,

凯文

1 个答案:

答案 0 :(得分:3)

简而言之:[data length]

以下是我使用的下载栏的工作原理。

// 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];