使用NSURLSessionDownloadTask下載文件的過程與前面差不多,需要註意的是文件下載文件之後會自動保存到一個臨時目錄,需要開發人員自己將此文件重新放到其他指定的目錄中。 來自KenshinCui,鏈接見上篇。 ...
使用NSURLSessionDownloadTask下載文件的過程與前面差不多,需要註意的是文件下載文件之後會自動保存到一個臨時目錄,需要開發人員自己將此文件重新放到其他指定的目錄中。
// // ViewController.m // NSURLSession // // Copyright © 2016年 asamu. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self downLoadFile]; } -(void)downLoadFile{ //1.創建 url NSString *fileName = @"1.jpg"; NSString *urlStr = [NSString stringWithFormat:@"http://img3.douban.com/lpic/s4717862.jpg",fileName]; urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:urlStr]; //2.創建請求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //創建會話 NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithRequest:request completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) { if(!error){ //location 是下載後的臨時保存路徑,需要將它移動到需要保存的位置 NSError *saveError = nil; NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject]; NSString *savePath = [cachePath stringByAppendingString:fileName]; NSLog(@"%@",savePath); NSURL *url = [NSURL fileURLWithPath:savePath]; [[NSFileManager defaultManager]copyItemAtURL:location toURL:url error:&saveError]; if (!saveError) { NSLog(@"save success"); }else{ NSLog(@"error is :%@",saveError.localizedDescription); } }else{ NSLog(@"error is :%@",error.localizedDescription); } }]; //執行任務 [downloadTask resume]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } @end
來自KenshinCui,鏈接見上篇。