Iphone 如何只获取域名?
我有一个数组,我得到的链接,如网站Iphone 如何只获取域名?,iphone,Iphone,我有一个数组,我得到的链接,如网站 http://clickfrom.buy.com/default.asp?adid\u003d17379&sURL\u003dhttp%3A%2F%2Fwww.buy.com%2Fprod%2Fkimberly-clark-professional-kleenex-boutique-white-facial-tissue-2-ply%2Fq%2Floc%2F66357%2F211347223.html 我想要的是只得到主域的例子 clickfrom.
http://clickfrom.buy.com/default.asp?adid\u003d17379&sURL\u003dhttp%3A%2F%2Fwww.buy.com%2Fprod%2Fkimberly-clark-professional-kleenex-boutique-white-facial-tissue-2-ply%2Fq%2Floc%2F66357%2F211347223.html
我想要的是只得到主域的例子
clickfrom.buy.com是主要网站地址。如何做到这一点?如果您有NSURL,您可以要求
[url host]
这应该与上面的“clickfrom.buy.com”相对应。您可以通过以下方式进行操作:
NSString *myUrl = @"http://clickfrom.buy.com/default.asp?adid\\u003d17379&sURL\\u003dhttp%3A%2F%2Fwww.buy.com%2Fprod%2Fkimberly-clark-professional-kleenex-boutique-white-facial-tissue-2-ply%2Fq%2Floc%2F66357%2F211347223.html";
NSURL *url = [NSURL URLWithString:myUrl];
NSLog(@"%@", [url host]);
编辑
序列
\u003d
在NSString中,字符串被解释为通用字符,因此必须在我们的示例中引用:
\\u003d
并将导致错误:\u003d不是有效的通用字符。仍然存在解析问题,因为反斜杠似乎是URI语法中的无效字符。它必须是%逃脱
请看/2.4.3。排除的US-ASCII字符
所以做一个
NSString *myUrl = [@"http://clickfrom.buy.com/default.asp?adid\\u003d17379&sURL\\u003dhttp%3A%2F%2Fwww.buy.com%2Fprod%2Fkimberly-clark-professional-kleenex-boutique-white-facial-tissue-2-ply%2Fq%2Floc%2F66357%2F211347223.html" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
应该让解析工作。使用
rangeOfString
方法NSString
获取域的绑定,然后使用substringWithRange
方法NSString
提取域文本
- (NSString *)substringWithRange:(NSRange)aRange
- (NSRange)rangeOfString:(NSString *)aString
我尝试了这个方法,但它显示为空,我使用了NSLog(@“link is%@,[itemArray valueForKey:@“link”]);NSString*linkstring=[NSString stringWithFormat:@“%@”,[itemArray valueForKey:@“link”];NSLog(@“字符串为%@”,链接字符串);for(int i=0;i看起来好像
\u003d
正在中断解析。@Sabby我已经更新了我的答案,这是反斜杠导致了问题。请参阅下面的注释,我得到了Null。我得到了链接数组中的值
- (NSString *)substringWithRange:(NSRange)aRange
- (NSRange)rangeOfString:(NSString *)aString