2012-02-23 28 views
1

這看起來很簡單,但我一直無法找到任何恰恰符合我要求的內容。在NSURL中抓取域中的所有內容?

我需要的是能夠採取一個NSURL(或其NSString表示形式),並抓住一切通過計劃和領域。所以在http://www.google.com/search?&q=cocoa的情況下,我需要/搜索? & q =可可。

我可以用[NSURL relativePath]和[NSURL查詢]拼湊一個字符串接近,但[NSURL查詢]留下了問號,因爲我要跟不能保證有問題工作的URL標誌着我不能將它們添加回自己。

那麼有沒有一種很好的方便的方法來抓住過去的方案和領域,我已經錯過了,或者我將不得不把它拆開並粘合在一起?

回答

1

你可以用正則表達式等來做到這一點。但在這種情況下,自定義解決方案可能是最好的。

如果您的URL總是「http:// ...」,那麼您需要在前7個字符後找到第一個「/」,然後從那裏取出字符串。或者您可以找到第三個「/」...

您可以使用NSStringrangeX方法之一計算該「/」的索引,並在您擁有該方法後使用substringFromIndex方法。

1

如果該URL沒有問號來表示其參數字符串,則所有參數都應作爲路徑的一部分返回。對於NSURL要返回‑query必須是是URL中的問號。

路徑後面的其他東西是‑fragment‑parameterString。網址基本上打破這樣的:

scheme://user:[email protected]:portnumber/path/file.htm;param1;param2?something=other&andmore=more#fragments 

如果‑query回報nil則沒有問號。

3

這不正是[NSURL relativeString]所做的嗎?

一個minor值得注意的問題在此:

enter image description here