3

苹果表示,NSURL 是使用 RFC 1738(和其他一些)开发的。

现在 RFC 1738 仅指定 Web URL 具有方案和方案特定部分。

我想知道 NSURL 理解的所有方案。而且因为我将它与 NSURLRequest 和 NSURLConnection (所谓的“URL 加载器系统”)一起使用,所以我必须知道它们所理解的所有方案。

为什么?因为我只想知道。Apple 没有在文档中详细介绍它,只是说遵守 RFC 1738。这说明了很多,也没有说明什么。

4

2 回答 2

8

NSURL“支持”任何方案,因为它对如何使用相关方案一无所知。它只是 URL 概念的包装。

同样,NSURLRequest不知道更多,但它确实有能力存储可能是特定于协议的额外信息。

NSURLConnection是您开始获得更多特定于协议的地方。NSURLConnection能够支持你扔给它的任何 URL,只要有一个合适的NSURLProtocol子类注册。但是开箱即用,它被记录支持http:,https:和. 您可以通过快速调用对其进行测试。ftp:file:+canHandleRequest:

根据经验,系统也支持data:URL。我已经向 Apple 提交了 radar://problem/13649313,要求他们记录下来。

于 2010-01-21T17:42:39.987 回答
4

内置的 URL 协议可以处理方案httphttpsfileftpaboutdata

你可以定义你自己的协议,让 NSURL 系统使用NSURLProtocol类自动处理新的方案。

于 2010-01-21T15:47:42.323 回答