fileURLWithPath與 URLWithString的區(qū)別

作為一只沒有節(jié)操的程序猿,越發(fā)理解分享是多么重要的事情;因此以后會把工作和學習中遇到的問題和技巧分享上來,萬一被哪位程序媛或者程序猿看上了呢?

好了,回歸正題,今天在創(chuàng)建的時候,小手一抖,引出了今天要講的話題:fileURLWithPath與 URLWithString的區(qū)別;

NSURLSessionDownloadTask*downTask = [sessiondownloadTaskWithURL:url completionHandler:^(NSURL*_Nullablelocation,NSURLResponse*_Nullableresponse,NSError*_Nullableerror) {

NSString*cache =[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) lastObject];

NSString*fullPath = [cachestringByAppendingPathComponent:fileName];

[[NSFileManagerdefaultManager] moveItemAtURL:location

toURL:[NSURL URLWithString:fullPath] error:nil];

}] resume];

各位犀利的雙眼已經看出來這是NSSession創(chuàng)建下載任務的方法,重點在于小手抖出來[NSURL URLWithString:fullPath]的URL創(chuàng)建方法后,在Cache文件夾下始終沒有得到要下載的圖片,后來把[NSURL URLWithString:fullPath]改為[NSURL fileURLWithPath:fullPath]后,下載的圖片才嬌羞呈現(xiàn);

因此整理了一下這兩種創(chuàng)建URL方法的區(qū)別;

首先我們要分清楚URL和路徑是不同的概念;URL是包含協(xié)議頭 + 主機地址 +資源路徑,如果訪問的資源是本機的,那么主機地址可以省略;而路徑是不用包含協(xié)議頭和主機地址的;各位客官請過目下面的測試:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event

{

NSDictionary*dict =@{@"name":@"xiaoqiang"};

NSString*filePath =@"/Users/calabashBoy/Desktop/name.plist";

NSString*fileURL =@"file:///Users/calabashBoy/Desktop/name.plist";

NSURL*url1 = [NSURL URLWithString:fileURL];

NSURL*url2 = [NSURL fileURLWithPath:filePath];

NSURL*url3 = [NSURL URLWithString:filePath];

NSLog(@"url1 = %@\n url2 = %@\n url3 = %@",url1,url2,url3);

//??? [dict writeToFile:filePath atomically:YES]; //可以生成

//??? [dict writeToFile:fileURL atomically:YES];//無法生成 —>路徑中不能包含協(xié)議頭

//??? [dict writeToURL:url1 atomically:YES];//可以生成

//??? [dict writeToURL:url2 atomically:YES];//可以生成

[dict writeToURL:url3 atomically:YES];//無法生成 —>字符串中必須包含協(xié)議頭,不然生成的URL是錯誤的;

}

打印出的結果:url1 = file:///Users/calabashBoy/Desktop/name.plist

url2 = file:///Users/calabashBoy/Desktop/name.plist

url3 = /Users/calabashBoy/Desktop/name.plist

可以看出來使用fileURLWithPath創(chuàng)建出來的URL會自動加上協(xié)議頭file://;

而使用URLWithString創(chuàng)建的URL,與原有的字符串一模一樣;

那么當我們需要根據一個字符串創(chuàng)建URL的時候,如果這個字符串包含協(xié)議頭,那么使用URLWithString,一般用于網絡資源的URL創(chuàng)建;

如果訪問的是本地資源,而且不包含協(xié)議頭,使用fileURLWithPath創(chuàng)建URL;當然可以用URLWithString拼接一個協(xié)議頭來實現(xiàn),不過這….耿直如你;

另外在使用fileURLWithPath創(chuàng)建URL時,不用擔心URL中混有中文的問題,系統(tǒng)會自動實現(xiàn)轉換;

因此如果在訪問本地資源的時候,不要猶豫,fileURLWithPath是你的首選.不過要注意去掉字符串中的協(xié)議頭;

好了,第一篇就就先這樣吧,試筆之作,希望大家多多指正,定當虛心接受;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鲜屏,一起剝皮案震驚了整個濱河市石景,隨后出現(xiàn)的幾起案子尚猿,更是在濱河造成了極大的恐慌拧抖,老刑警劉巖己儒,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灶似,死亡現(xiàn)場離奇詭異奶赔,居然都是意外死亡碾阁,警方通過查閱死者的電腦和手機怕吴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門窍侧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人转绷,你說我怎么就攤上這事伟件。” “怎么了议经?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵斧账,是天一觀的道長。 經常有香客問我煞肾,道長咧织,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任籍救,我火速辦了婚禮习绢,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己闪萄,他們只是感情好梧却,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著败去,像睡著了一般放航。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上圆裕,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天广鳍,我揣著相機與錄音,去河邊找鬼吓妆。 笑死赊时,一個胖子當著我的面吹牛,可吹牛的內容都是我干的行拢。 我是一名探鬼主播蛋叼,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剂陡!你這毒婦竟也來了?” 一聲冷哼從身側響起狐胎,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鸭栖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后握巢,有當地人在樹林里發(fā)現(xiàn)了一具尸體晕鹊,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年暴浦,在試婚紗的時候發(fā)現(xiàn)自己被綠了溅话。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡歌焦,死狀恐怖飞几,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情独撇,我是刑警寧澤屑墨,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站纷铣,受9級特大地震影響卵史,放射性物質發(fā)生泄漏。R本人自食惡果不足惜搜立,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一以躯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啄踊,春花似錦忧设、人聲如沸刁标。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽命雀。三九已至,卻和暖如春斩箫,著一層夾襖步出監(jiān)牢的瞬間吏砂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工乘客, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狐血,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓易核,卻偏偏與公主長得像匈织,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牡直,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容

  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666閱讀 1,383評論 0 6
  • 1.自定義控件 a.繼承某個控件 b.重寫initWithFrame方法可以設置一些它的屬性 c.在layouts...
    圍繞的城閱讀 3,389評論 2 4
  • iOS開發(fā)系列--網絡開發(fā) 概覽 大部分應用程序都或多或少會牽扯到網絡開發(fā)缀匕,例如說新浪微博、微信等碰逸,這些應用本身可...
    lichengjin閱讀 3,661評論 2 7
  • JSON數據解析: JSON的簡單介紹:什么是JSONJSON以一種輕量級的數據格式乡小,一般用來數據交互服務器返回給...
    木子尚武閱讀 299評論 0 0
  • 在時間的河流里我乘槎而行 水底的人們投我以仰慕眼光 用珊瑚蚌珠交易我手邊的星 不吝牽牛與織女捆一塊送贈 江湖中沒有...
    月圓天心閱讀 231評論 1 4