NSURL使用基本介紹

先甩一段NSURL基本使用方法

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/search?id=1"];    
//  ?后是第一個參數(shù)     &后是后面的參數(shù)
NSLog(@"scheme:%@", [url scheme]); //協(xié)議 http 
NSLog(@"host:%@", [url host]);     //域名 www.baidu.com 
NSLog(@"absoluteString:%@", [url absoluteString]); 
//完整的url字符串 http://www.baidu.com:8080/search?id=1  
 (剛才在真機(jī)上跑了一下权烧,并沒有打印出來端口 8080 啊) 
NSLog(@"relativePath: %@", [url relativePath]); //相對路徑 search 
NSLog(@"port :%@", [url port]);  // 端口 8080 
NSLog(@"path: %@", [url path]);  // 路徑 search 
NSLog(@"pathComponents:%@", [url pathComponents]); // search NSLog(@"Query:%@", [url query]);  //參數(shù) id=1

一、URL的定義
URL是個司空見慣的東西琴庵,但要想徹底弄明白NSURL,必須先弄清楚URL的詳細(xì)定義仰美。

根據(jù)iOS SDK關(guān)于NSURL class描述部分的介紹迷殿,NSURL在RFC1808、1738和2732中有介紹咖杂。

1庆寺,RFC 1808

從文檔正文名字可以看出,RFC 1808是對“Relative Uniform Resource Locators”的定義诉字。

Relative URL的定義:

  <scheme>://<net_loc>/<path>;<params>?<query>#<fragment>

共分為六部分:

  scheme ":"   ::= scheme name, as per Section 2.1 of RFC 1738 [2].

  "http://" net_loc ::= network location and login information, as per Section 3.1 of RFC 1738 [2].

  "/" path     ::= URL path, as per Section 3.1 of RFC 1738 [2].

  ";" params   ::= object parameters (e.g., ";type=a" as in Section 3.2.2 of RFC 1738 [2]).

  "?" query    ::= query information, as per Section 3.3 of RFC 1738 [2]. 

  "#" fragment ::= fragment identifier.

2懦尝,RFC 1738,基本上是對RFC1808的補(bǔ)充描述壤圃。

3陵霉,RFC 2732,是對IPv6協(xié)議下的URL進(jìn)行了進(jìn)一步定義伍绳。

看過以上三點(diǎn)后踊挠,會對URL的組成有個大概的了解,而NSURL不過是把對URL對象的操作封裝起來的類而已冲杀。

二效床、NSURL對象的組成
根據(jù)SDK中的描述,NSURL對象由兩部分組成:

base URL(很可能是nil)权谁,通過baseUrl接口返回剩檀。
相對于base URL的一個字符串,通過relativeString接口返回旺芽。
根據(jù)是否有base URL屬性沪猴,可以將NSURL對象分為兩類卤妒,解析URL時不需要base URL參與的,叫做absolute URL字币,否則叫做relative URL则披。

回想第一部分中提到的RFC1808,它是對Relative URL的定義洗出。

三士复、File URL和File path的區(qū)別
這是在iPhone6.1模擬器下,獲取一個App沙盒內(nèi)Documents子目錄下某個文件的URL:

file://localhost/Users/liuwanwei/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/AD065A2E-4355-436F-AD63-C55724CFE4E8/Documents/image/2013-03-18-11-42-05-2.mp4

對應(yīng)于RFC 1808中的內(nèi)容:

scheme:file
net_loc: //localhost
path:/Users/liuwanwei/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/AD065A2E-4355-436F-AD63-C55724CFE4E8/Documents/image/2013-03-18-11-42-05-2.mp4
params:空
query:空
fragment:空
可以看出翩活,Path只是URL其中一小部分阱洪。

而上面的前三個部分,都可以通過NSURL的接口得到:[url scheme], [url host], [url path]

四菠镇、何時用到base url
從base url和relative url的名字可以很明顯看出他們之間的差別冗荸,但問題是在程序開發(fā)時,何時會用到base url利耍?

這個問題困擾我很久蚌本,在google上搜索很多次之后,也沒有發(fā)現(xiàn)一個使用baseUrl的例子隘梨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末程癌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子轴猎,更是在濱河造成了極大的恐慌嵌莉,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捻脖,死亡現(xiàn)場離奇詭異锐峭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)可婶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門沿癞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扰肌,你說我怎么就攤上這事抛寝。” “怎么了曙旭?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵盗舰,是天一觀的道長。 經(jīng)常有香客問我桂躏,道長钻趋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任剂习,我火速辦了婚禮蛮位,結(jié)果婚禮上较沪,老公的妹妹穿的比我還像新娘。我一直安慰自己失仁,他們只是感情好尸曼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萄焦,像睡著了一般控轿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拂封,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天茬射,我揣著相機(jī)與錄音,去河邊找鬼冒签。 笑死在抛,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的萧恕。 我是一名探鬼主播刚梭,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼廊鸥!你這毒婦竟也來了望浩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤惰说,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缘回,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吆视,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年酥宴,在試婚紗的時候發(fā)現(xiàn)自己被綠了啦吧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡拙寡,死狀恐怖授滓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肆糕,我是刑警寧澤般堆,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站诚啃,受9級特大地震影響淮摔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜始赎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一和橙、第九天 我趴在偏房一處隱蔽的房頂上張望仔燕。 院中可真熱鬧,春花似錦魔招、人聲如沸晰搀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厕隧。三九已至,卻和暖如春俄周,著一層夾襖步出監(jiān)牢的瞬間吁讨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工峦朗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留建丧,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓波势,卻偏偏與公主長得像翎朱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子尺铣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理拴曲,服務(wù)發(fā)現(xiàn),斷路器凛忿,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • NSURL /NSURLComponents URI URL(統(tǒng)一資源定位符) 是一種 URI澈灼,URN(統(tǒng)一資源名...
    水止云起閱讀 16,954評論 3 29
  • URL 和 NSURL 格式解析 字?jǐn)?shù)973閱讀46評論0喜歡0 1. URL 是什么? 統(tǒng)一資源定位符(Unif...
    藍(lán)色的雪啦閱讀 1,113評論 0 0
  • 在大衡院的籃球場上戈咳,給老天爺來個特寫心软。大片白白的云遮住了淡藍(lán)的天,咦著蛙?也許删铃,有些事情只適合留戀 今天天兒很...
    柆亇閱讀 280評論 0 0
  • 田螺灣閱讀 132評論 0 0