iOS-->Download類(lèi)的基本使用

201406041133326.jpg

Download類(lèi)的基本使用

download下載類(lèi)是系統(tǒng)自帶的下載類(lèi)嗽桩,它可以將會(huì)話(huà)對(duì)象封裝成一個(gè)下載任務(wù)睹限,它不需要文件句柄也不需要輸出流就能實(shí)現(xiàn)文件的下載晚伙,但它把文件下載結(jié)束之后會(huì)將文件放在一個(gè)temp臨時(shí)路徑里颖低,而且這個(gè)路徑下的文件會(huì)隨時(shí)被系統(tǒng)刪除,因此陌宿,為了保證文件的安全性锡足,我們需要手動(dòng)將下載好的文件移動(dòng)到安全的路徑下。具體代碼如下:

-(void)download1{
    //創(chuàng)建請(qǐng)求路徑
    NSURL *url=[NSURL URLWithString:@"http://6:32812/resources/images/minion_01.png"];
    //創(chuàng)建請(qǐng)求對(duì)象
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    //創(chuàng)建會(huì)話(huà)對(duì)象
    NSURLSession *session=[NSURLSession sharedSession];

    //根據(jù)會(huì)話(huà)對(duì)象來(lái)創(chuàng)建下載任務(wù)
    NSURLSessionDownloadTask *downloadTask=[session downloadTaskWithRequest:request completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        NSLog(@"%@",location);
        //拼接要拷貝到的目的路徑壳坪,因?yàn)閿?shù)據(jù)默認(rèn)是放在一個(gè)臨時(shí)路徑下面舶得,臨時(shí)路徑不安全,因?yàn)闀?huì)隨時(shí)被刪除
        NSString *path=[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:response.suggestedFilename];
        NSURL *url=[NSURL fileURLWithPath:path];
        //移動(dòng)文件
        [[NSFileManager defaultManager]moveItemAtURL:location toURL:url error:nil];
        NSLog(@"%@",url);
    }];
    //提交任務(wù)
    [downloadTask resume];



}

除了上面那個(gè)方法外爽蝴,我們還可以通過(guò)代理的方法實(shí)現(xiàn)沐批,而且使用代理還可以監(jiān)聽(tīng)文件的下載進(jìn)度:

-(void)download2{
    //確定請(qǐng)求路徑
    NSURL *url=[NSURL URLWithString:@"http://120.32812/resources/images/minion_01.png"];

    //創(chuàng)建請(qǐng)求對(duì)象
    NSURLRequest *request=[NSURLRequest requestWithURL:url];

    //創(chuàng)建會(huì)話(huà)對(duì)象并設(shè)置代理
    NSURLSession *session=[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]];

    //根據(jù)會(huì)話(huà)對(duì)象創(chuàng)建請(qǐng)求任務(wù)
    NSURLSessionDownloadTask *downloadTask=[session downloadTaskWithRequest:request];
    [downloadTask resume];
}
// bytesWritten :本次寫(xiě)入的數(shù)據(jù)大小  totalBytesWritten:寫(xiě)入的總大小
// totalBytesExpectedToWrite :需要下載的數(shù)據(jù)的總大小
-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite{
    //監(jiān)聽(tīng)文件下載進(jìn)度
    NSLog(@"%f",1.0*totalBytesWritten/totalBytesExpectedToWrite);
}
//下載完成的時(shí)候調(diào)用
-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location{
    //剪切文件到安全的位置
    NSString *path=[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:downloadTask.response.suggestedFilename];
    NSURL *fullPath=[NSURL fileURLWithPath:path];

    [[NSFileManager defaultManager]moveItemAtURL:location toURL:fullPath error:nil];
    NSLog(@"%@",fullPath);

}
//請(qǐng)求結(jié)束的時(shí)候調(diào)用(并不是發(fā)生錯(cuò)誤的時(shí)候才調(diào)用)
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{
    NSLog(@"---------");
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纫骑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子九孩,更是在濱河造成了極大的恐慌先馆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躺彬,死亡現(xiàn)場(chǎng)離奇詭異磨隘,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)顾患,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)个唧,“玉大人江解,你說(shuō)我怎么就攤上這事♂慵撸” “怎么了犁河?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)魄梯。 經(jīng)常有香客問(wèn)我桨螺,道長(zhǎng),這世上最難降的妖魔是什么酿秸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任灭翔,我火速辦了婚禮,結(jié)果婚禮上辣苏,老公的妹妹穿的比我還像新娘肝箱。我一直安慰自己,他們只是感情好稀蟋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布煌张。 她就那樣靜靜地躺著,像睡著了一般退客。 火紅的嫁衣襯著肌膚如雪骏融。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天萌狂,我揣著相機(jī)與錄音档玻,去河邊找鬼。 笑死粥脚,一個(gè)胖子當(dāng)著我的面吹牛窃肠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播刷允,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼冤留,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼碧囊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起纤怒,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤糯而,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后泊窘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體熄驼,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年烘豹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瓜贾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡携悯,死狀恐怖祭芦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情憔鬼,我是刑警寧澤龟劲,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站轴或,受9級(jí)特大地震影響昌跌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜照雁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一蚕愤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饺蚊,春花似錦审胸、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至曙求,卻和暖如春碍庵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悟狱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工静浴, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挤渐。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓苹享,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子得问,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理囤攀,服務(wù)發(fā)現(xiàn),斷路器宫纬,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言蝌蹂,發(fā)作 oo-boon-too 的音噩斟。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 99,276評(píng)論 9 467
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,149評(píng)論 30 470
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評(píng)論 25 707
  • 今天刷空間的時(shí)候亩冬,看到一情侶曬大晚上壓馬路的恩愛(ài)照,底下一片評(píng)論全是666硼身。我并沒(méi)有評(píng)論什么,因?yàn)榇藭r(shí)的我已經(jīng)飄到...
    暗香晴雪閱讀 662評(píng)論 4 2