在下載大型文件過程中是可以取消下載的
- (IBAction)download:(UIButton *)sender {
// 狀態取反
sender.selected = !sender.isSelected;
// 斷點續傳
// 斷點下載if (sender.selected) { // 繼續(開始)下載// 1.URLNSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/resources/videos.zip"];// 2.請求NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];// 設置請求頭NSString *range = [NSString stringWithFormat:@"bytes=%lld-", self.currentLength];[request setValue:range forHTTPHeaderField:@"Range"];// 3.下載(創建完conn對象后,會自動發起一個異步請求)self.conn = [NSURLConnection connectionWithRequest:request delegate:self];
} else { // 暫停[self.conn cancel];self.conn = nil;
}
}
注意點:
(1)當再次需要下載的時候需要重新設計HTTP請求的頭文件,使其在上一次下載結束的斷點上繼續下載—-斷點續傳
// 設置請求頭
NSString *range = [NSString stringWithFormat:@”bytes=%lld-“, self.currentLength];
[request setValue:range forHTTPHeaderField:@”Range”];
(2)取消connection方法
[self.conn cancel];
self.conn = nil;