我想通过以下代码
下载我执行此操作的文档NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:str] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:500];
[request setHTTPMethod:@"GET"];
NSData *returnData =[[NSURL alloc]init];
returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
根据下载的数据我想显示进度条,有什么方法可以做到这一点。
提前致谢。
答案 0 :(得分:2)
在NSURLConnection
实施方法- (void)connection:(NSURLConnection *)theConnection didReceiveResponse:(NSURLResponse *)response
的代理中。在这种方法中,您可以调用
long long expLength = [response expectedContentLength];
在expLength
中,您将获得预期的文档大小。
但请注意:
某些协议实现报告内容长度作为一部分 响应,但并非所有协议都保证提供这么多 数据。客户应该准备好处理更多或更少的数据。
答案 1 :(得分:1)
NSURLConnection使用
调用其委托- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
好吧,我们需要查看NSURLResponse,找到expectedContentLength
- (long long)expectedContentLength
Return Value The receiver’s expected content length,
or NSURLResponseUnknownLength if the length can’t be determined.
答案 2 :(得分:0)
您可以使用同步/异步调用以任一方式执行此操作。对于Asynchronous,您需要在类中实现委托方法,对于Synchronous,您可以在方法范围内调用它。