在objective-c中获取NSURL的一部分
我有一个NSString的值
http://digg.com/news/business/24hr
我怎样才能得到第三级之前的一切?
http://digg.com/news/
这不完全是第三级,介意你。 一个URL像这样分裂:
- 协议或scheme(这里,
http) -
://分隔符 - 用户名和密码(这里没有,但可以是
username:password@hostname) - 主机名(这里是
digg.com) - 该端口(例如
:80后的域名) - path(这里是
/news/business/24hr) - 参数string(任何后面的分号)
- 查询string(这将是如果你有GET参数像
?foo=bar&baz=frob) - 该片段(这将是如果你有一个链接锚点,如
#foobar)。
一个“全function”的URL将如下所示:
http://foobar:nicate@example.com:8080/some/path/file.html;params-here?foo=bar#baz
NSURL有广泛的访问者。 您可以在NSURL类的文档中检查它们, 访问URL的部分 。 快速参考:
-
-[NSURL scheme]= http -
-[NSURL resourceSpecifier]=(从//到URL结尾的所有内容) -
-[NSURL user]= foobar -
-[NSURL password]= nicate -
-[NSURL host]= example.com -
-[NSURL port]= 8080 -
-[NSURL path]= /some/path/file.html -
-[NSURL pathComponents]= @ [“/”,“some”,“path”,“file.html”](注意最初/是它的一部分) -
-[NSURL lastPathComponent]= file.html -
-[NSURL pathExtension]= html -
-[NSURL parameterString]= params-here -
-[NSURL query]= foo = bar -
-[NSURL fragment]= baz
你想要什么,但是,是这样的:
NSURL* url = [NSURL URLWithString:@"http://digg.com/news/business/24hr"]; NSString* reducedUrl = [NSString stringWithFormat: @"%@://%@/%@", url.scheme, url.host, url.pathComponents[1]];
对于您的示例URL,您似乎需要的是协议,主机和第一个path组件。 (由-[NSString pathComponents]返回的数组中索引为0的元素只是“/”,所以您需要索引为1的元素。其他斜线将被丢弃。
游乐场提供了一个互动的方式来看待这个行动。 我希望你能喜欢做同样的,一个有趣的方式来学习NSURL在iOS的一个重要的话题。
- 如何使用drawInRect:withAttributes:而不是drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment:in iOS 7
- sizeWithFont方法已被弃用。 boundingRectWithSize返回一个意外的值
- 如何在NSString中使用printf
- NSString包含string崩溃
- 如何将unichar值转换为Objective-C中的NSString?
- NSString是整数?
- 检测NSString是否包含…?
- replaceNSString – iPhone的出现
- NSString:在plist中换行符