苹果表示,NSURL 是使用 RFC 1738(和其他一些)开发的。
现在 RFC 1738 仅指定 Web URL 具有方案和方案特定部分。
我想知道 NSURL 理解的所有方案。而且因为我将它与 NSURLRequest 和 NSURLConnection (所谓的“URL 加载器系统”)一起使用,所以我必须知道它们所理解的所有方案。
为什么?因为我只想知道。Apple 没有在文档中详细介绍它,只是说遵守 RFC 1738。这说明了很多,也没有说明什么。
苹果表示,NSURL 是使用 RFC 1738(和其他一些)开发的。
现在 RFC 1738 仅指定 Web URL 具有方案和方案特定部分。
我想知道 NSURL 理解的所有方案。而且因为我将它与 NSURLRequest 和 NSURLConnection (所谓的“URL 加载器系统”)一起使用,所以我必须知道它们所理解的所有方案。
为什么?因为我只想知道。Apple 没有在文档中详细介绍它,只是说遵守 RFC 1738。这说明了很多,也没有说明什么。
NSURL
“支持”任何方案,因为它对如何使用相关方案一无所知。它只是 URL 概念的包装。
同样,NSURLRequest
不知道更多,但它确实有能力存储可能是特定于协议的额外信息。
NSURLConnection
是您开始获得更多特定于协议的地方。NSURLConnection
能够支持你扔给它的任何 URL,只要有一个合适的NSURLProtocol
子类注册。但是开箱即用,它被记录为支持http:
,https:
和. 您可以通过快速调用对其进行测试。ftp:
file:
+canHandleRequest:
根据经验,系统也支持data:
URL。我已经向 Apple 提交了 radar://problem/13649313,要求他们记录下来。
内置的 URL 协议可以处理方案http
、https
、file
、ftp
、about
和data
。
你可以定义你自己的协议,让 NSURL 系统使用NSURLProtocol
类自动处理新的方案。