【问题标题】:Detect URL valid for iOS检测对 iOS 有效的 URL
【发布时间】:2013-06-07 06:11:01
【问题描述】:

我想检测URL 是否有效。所以我看到了下面的函数。

+ (id)URLWithString:(NSString *)URLString

正如Apple Documentation 所说,NSURL 对象用URLString 初始化。如果string 格式错误,则返回nil。但实际上,我用任何string 调用URLWithString,它不会返回nil。这个文档有错吗? 您能否提供一种解决方法来检测URL 是否有效?

【问题讨论】:

  • 很大一部分取决于您在这里所说的“有效”究竟是什么意思。 Apple 的文档非常明确地指出了他们用来确定有效性的 RFC

标签: objective-c nsurl


【解决方案1】:

文档没有错 - NSURL 支持绝对和相对 URL。此外,它不仅用于远程(Web)URL,还用于本地文件 URL。例如:

// Totally valid NSURL
NSURL *url = [NSURL URLWithString:@"http://google.com"];

// Just as valid NSURL
NSURL *url2 = [NSURL URLWithString:@"2rwehrfuiw34twef"];

您无法保证 URL 是可访问的。它确实保证你的 URL 符合 RFC 2396。如果你想检查一个 URL 是否可用,你可以使用 checkResourceIsReachableAndReturnError: 方法(从 iOS 5 开始可用,但应该使用用于文件路径 URL)或为其发出网络请求(如果您的 URL 不是文件路径,则必须这样做)。

【讨论】:

  • 您可能还想查看 [NSURLConnection canHandleRequest:],因为它会进行预检评估,节省一些时间并保持同步。
猜你喜欢
  • 2016-11-09
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
相关资源
最近更新 更多