这看起来很简单,但我找不到任何能正是我正在寻找的东西。
我需要的是获取NSURL(或其NSString表示)并获取超出方案和域的所有内容的能力。所以在http://www.google.com/search?&q=cocoa的情况下,我需要/搜索?& q = cocoa。
我可以使用[NSURL relativePath]和[NSURL查询]将字符串拼凑在一起,但[NSURL查询]会遗漏问号,因为我正在使用的URL不能保证有问号我不能把它们添加回自己。
那么有一个很好的,方便的方法来抓住我错过的方案和领域的所有内容,或者我将不得不把它全部分开并将它粘合在一起?
答案 0 :(得分:3)
答案 1 :(得分:1)
您可以使用正则表达式等来完成此操作。但在这种情况下,自定义解决方案可能是最好的。
如果您的网址始终为“http:// ...”,则需要在前7个字符后找到第一个“/”,然后从那里获取字符串。或者你可以找到第3个“/"...
您可以使用rangeX
NSString
方法之一计算“/”的索引,并在获得后使用substringFromIndex
方法。
答案 2 :(得分:1)
如果URL没有问号来表示其参数字符串,那么所有参数都应作为路径的一部分返回。要让NSURL
从‑query
返回内容,必须成为网址中的问号。
路径之后的其他内容是‑fragment
和‑parameterString
。 URL基本上像这样分解:
scheme://user:password@host.domain.org:portnumber/path/file.htm;param1;param2?something=other&andmore=more#fragments
如果‑query
返回nil
,那么就没有问号。