Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何只获取域名?_Iphone - Fatal编程技术网

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