NSURLComponents

NSURLComponents

蘋果在 iOS 7 和 OS X Mavericks 中悄悄添加了 NSURLComponents山孔,這樣就可以完美替代 NSMutableURL了。但文檔還不是很完善,所以這個類仍然是近期Foundation新增類中隱晦的一塊。

創(chuàng)建 NSURLComponents 實(shí)例和創(chuàng)建 NSURL 實(shí)例的方法差不多磺樱,通過一個 NSString 和一個非必需的base URL參數(shù)創(chuàng)建(+componentsWithString: & +componentsWithURL:resolvingAgainstBaseURL:)贺辰。也可以用 alloc init 創(chuàng)建一個空的容器煎殷,和 NSDateComponents 差不多。

NSURLNSURLComponents 的不同之處在于喊崖,URL component 屬性是 readwrite 的挣磨。它提供了安全直接的方法來修改URL的各個部分:

  • scheme
  • user
  • password
  • host
  • port
  • path
  • query
  • fragment

如果嘗試賦值一個非法的scheme或port,會拋出一個異常荤懂。

另外茁裙,NSURLComponents 也有 readwrite 屬性對每個 component 進(jìn)行 [percent-encoded]。

percentEncodedUser
percentEncodedPassword
percentEncodedHost
percentEncodedPath
percentEncodedQuery
percentEncodedFragment
對這些 percent encoding 屬性的 get 操作可能會造成 retain 增加节仿。set 操作會默認(rèn)認(rèn)為該 component 已經(jīng)正確 encode 了晤锥。試圖賦值一個非法的 percent encode 值會拋出異常。雖然 ‘;’ 是一個合法的路徑字符,但建議還是percent-encoded一下來兼容NSURL(傳遞給-stringByAddingPercentEncodingWithAllowedCharacters: URLPathAllowedCharacterSet參數(shù) 會將所有的 ‘;’ 字符 percent-encode)矾瘾。

Percent-Encoding

說起 percent-encoding…

NSURLCFURLRef 的轉(zhuǎn)換是 無縫的女轿。底層的 C API 有 NSURL 的所有功能。包括 CFURLCreateStringByAddingPercentEscapesCFURLCreateStringByReplacingPercentEscapesUsingEncoding 異常:

*   `CFURLCreateStringByAddingPercentEscapes`:創(chuàng)建一個字符串的復(fù)制壕翩,用同義的 percent-encoded 字符代替原有的字符蛉迹。
CFStringRef CFURLCreateStringByAddingPercentEscapes (
   CFAllocatorRef   allocator,
   CFStringRef      originalString,
   CFStringRef      charactersToLeaveUnescaped,
   CFStringRef      legalURLCharactersToBeEscaped,
   CFStringEncoding encoding
);

CFURLCreateStringByReplacingPercentEscapesUsingEncoding: 創(chuàng)建一個新字符串,用同義的percent-encoded字符代替原有的所有可替換字符放妈。

CFStringRef CFURLCreateStringByReplacingPercentEscapesUsingEncoding (
   CFAllocatorRef   allocator,
   CFStringRef      origString,
   CFStringRef      charsToLeaveEscaped,
   CFStringEncoding encoding
);

Bookmark URL

最后一個話題是關(guān)于 bookmark URL 的婿禽,bookmard URL 可以在應(yīng)用多次啟動間安全地引用文件〈竺停可以認(rèn)為是一種對 文件描述符 的持久化扭倾。

一個bookmark是一個唯一的數(shù)據(jù)類型,包含一個描述文件位置的 NSData 對象挽绩。鑒于path和文件引用URL在多次啟動間可能被破壞膛壹,bookmark就可以被用來重建某個文件的URL地址,即使文件被改名或移動了位置也可以唉堪。

你可以在蘋果官方的文件系統(tǒng)編程指南的”Locating Files Using Bookmarks”部分中閱讀更多關(guān)于 bookmark URL 的內(nèi)容模聋。


忘記噴射火箭背包,忘記會飛的汽車吧唠亚,看看我對未來的設(shè)想:所有的東西都有一個 URL链方,以 Markdown 編碼,用 Git 存儲灶搜!如果你對宇宙資源定位器有興趣的話祟蚀,你會同意我的想法的!

超文本一樣割卖,通用標(biāo)識就是一個哲學(xué)概念前酿,通用標(biāo)識理念早于計(jì)算機(jī)時(shí)代被提出,也將長存于人類信息體系中鹏溯。這些通用標(biāo)示合在一起便可以代表我們信息時(shí)代的架構(gòu):一個用來把我們對于宇宙每一點(diǎn)了解都encode為一個網(wǎng)絡(luò)中實(shí)體的框架罢维,這很酷,很像我們的大腦中存在很多神經(jīng)元一樣丙挽。

我們處在物理計(jì)算的寒武紀(jì)大爆發(fā)險(xiǎn)境邊緣肺孵。用不了多久就會出現(xiàn)這樣的情景:在Internet組成的世界中,我們生活中的每一部分都有一個URL颜阐,也都有一個電子化的大腦平窘,都有數(shù)字化的精神和意識。雖然不能說是奇點(diǎn)迫近瞬浓,但是初婆,我們,就正在某些未知但難以置信的奇妙事物邊緣,馬上就要感受到它的來臨磅叛。

世界總是這樣的:互相交換貓咪照片的技術(shù)屑咳,總是蘊(yùn)含著無比高深的哲學(xué)含義。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弊琴,一起剝皮案震驚了整個濱河市兆龙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敲董,老刑警劉巖紫皇,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異腋寨,居然都是意外死亡聪铺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門萄窜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铃剔,“玉大人,你說我怎么就攤上這事查刻〖担” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵穗泵,是天一觀的道長普气。 經(jīng)常有香客問我,道長佃延,這世上最難降的妖魔是什么现诀? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮苇侵,結(jié)果婚禮上赶盔,老公的妹妹穿的比我還像新娘企锌。我一直安慰自己榆浓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布撕攒。 她就那樣靜靜地躺著陡鹃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抖坪。 梳的紋絲不亂的頭發(fā)上萍鲸,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音擦俐,去河邊找鬼脊阴。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嘿期。 我是一名探鬼主播品擎,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼备徐!你這毒婦竟也來了萄传?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤蜜猾,失蹤者是張志新(化名)和其女友劉穎秀菱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹭睡,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衍菱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肩豁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梦碗。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蓖救,靈堂內(nèi)的尸體忽然破棺而出洪规,到底是詐尸還是另有隱情,我是刑警寧澤循捺,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布斩例,位于F島的核電站,受9級特大地震影響从橘,放射性物質(zhì)發(fā)生泄漏念赶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捻艳。 院中可真熱鬧践樱,春花似錦、人聲如沸停局。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽董栽。三九已至,卻和暖如春企孩,著一層夾襖步出監(jiān)牢的瞬間锭碳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工勿璃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留擒抛,地道東北人推汽。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像歧沪,于是被迫代替她去往敵國和親民泵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

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