NSURLSession實現下載(不能看到下載進度),nsurlsession進度
NSURLSession實現下載(不能看到下載進度)
/**
* 下載任務:不能看到下載進度
*/
- (void)downloadTask
{
// 1.得到session對象
NSURLSession *session = [NSURLSessionsharedSession];
// 2.建立一個下載task
NSURL *url = [NSURLURLWithString:@"http://localhost:8080/MJServer/resources/test.mp4"];
NSURLSessionDownloadTask *task = [session downloadTaskWithURL:urlcompletionHandler:^(NSURL*location, NSURLResponse *response,NSError *error) {
// location : 臨時檔案的路徑(下載好的檔案)
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) lastObject];
// response.suggestedFilename : 建議使用的檔案名稱,一般跟伺服器端的檔案名稱一致
NSString *file = [cachesstringByAppendingPathComponent:response.suggestedFilename];
// 將臨時檔案剪下或者複製Caches檔案夾
NSFileManager *mgr = [NSFileManagerdefaultManager];
// AtPath : 剪下前的檔案路徑
// ToPath : 剪下後的檔案路徑
[mgr moveItemAtPath:location.pathtoPath:fileerror:nil];
}];
// 3.開始任務
[task resume];
}
注意:NSURLSessionDownloadTask下載完成之後,將資料儲存在沙箱裡面的tmp臨時檔案中,需要將臨時檔案將臨時檔案剪下或者複製Caches檔案夾。