自定义类:
NSMutableData *receivedData;
long long zipSize;
float percentComplete;
long long expectedBytes;
long long bytesReceived;
percentLabel.text = @"0%";
progress.progress = 0.0;
bytesReceived = percentComplete = 0;
receivedData = [[NSMutableData alloc]initWithLength:0];
- (IBAction)download:(id)sender {
NSURL *url = [NSURL URLWithString:@"你要连接的地址"];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
[connection start];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
expectedBytes = [response expectedContentLength];
numLabel.text = [NSString stringWithFormat:@"0/%.02fMB",(float)expectedBytes/1048576];
NSLog(@"%lld",expectedBytes);
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[receivedData appendData:data];
NSInteger receivedLen = [data length];
bytesReceived = (bytesReceived + receivedLen);
numLabel.text = [NSString stringWithFormat:@"%.02f/%.02fMB",
(float)bytesReceived/1048576,(float)expectedBytes/1048576];
percentLabel.text = [NSString stringWithFormat:@"%.0f%%",
(((float)bytesReceived/1048576)/((float)expectedBytes/1048576))*100];
[progress setProgress:((bytesReceived/(float)expectedBytes)*100)/100];
percentComplete = progress.progress*100;
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[connection cancel];
displayLabel.text = @"下载完成";
//文件保存在Document
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"下载的文件名"];
[receivedData writeToFile:filePath atomically:NO];
NSLog(@"%@",filePath);
}