将UIProgressView添加到NSURLConnection?

时间:2011-12-05 07:17:27

标签: ios nsurlconnection asihttprequest uiprogressview

是否可以将UIProgressView添加到NSURLConnection?它是如此简单:获取数据的长度,然后将其设置为int然后将该int发送到我的其他类到我的UIProgressView?

有人可以告诉我该怎么做吗?是否有任何示例或链接可以指出我正确的方向?

感谢!!!

2 个答案:

答案 0 :(得分:3)

didReceiveResponse函数中,您可以像这样获得总文件大小 -

_totalFileSize = response.expectedContentLength;

在didReceiveData函数中,您可以添加最多接收到的字节数 -

_receivedDataBytes += [data length];

现在,为了将进度条设置为正确的大小,您只需执行 -

MyProgressBar.progress = _receivedDataBytes / (float)_totalFileSize

(在didReceiveData函数或代码中的其他位置)

不要忘记将包含字节数的变量添加到您的类中!

以下是如何实现委托以更新进度视图

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    _totalFileSize = response.expectedContentLength;
    responseData = [[NSMutableData alloc] init];
}


-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
   _receivedDataBytes += [data length];
   MyProgressBar.progress = _receivedDataBytes / (float)_totalFileSize;
   [responseData appendData:data];
 }

我希望这有帮助..

答案 1 :(得分:0)

接受的答案看起来太像这个了。 https://stackoverflow.com/a/4255630 这真是引起了我的注意。

(在didReceiveData函数中或代码中的其他位置)

不要忘记将包含字节数的变量添加到您的类中!