Какие схемы понимает NSURL / NSURLRequest / NSURLConnection? - PullRequest
3 голосов
/ 21 января 2010

Apple утверждает, что NSURL разработан с использованием RFC 1738 (и некоторых других).

Теперь RFC 1738 определяет только то, что веб-URL имеет схему и специфичную для схемы часть.

Я хочу знать все схемы, которые понимает NSURL. И поскольку я использую его с NSURLRequest и NSURLConnection (так называемая «система загрузчика URL»), я должен знать все схемы, которые они понимают.

Почему? Потому что я просто хочу знать. Apple не вдаваться в подробности об этом в документации, просто сказать, что соответствует RFC 1738. Это говорит о многом, а также ничего.

Ответы [ 2 ]

8 голосов
/ 21 января 2010

NSURL «поддерживает» любую схему, потому что ничего не знает о том, как использовать данную схему. Это просто оболочка вокруг концепции URL.

Аналогично, NSURLRequest не знает больше, но у него есть возможность хранить дополнительную информацию, которая может быть специфичной для протокола.

NSURLConnection - это место, где вы начинаете получать более специфичные для протокола. NSURLConnection может поддерживать любой URL, который вы на него указываете, при условии, что для этого зарегистрирован подходящий подкласс NSURLProtocol. Но из коробки задокументировано для поддержки http:, https:, ftp: и file:. Вы можете проверить это с помощью быстрого +canHandleRequest: вызова.

Опытным путем система также поддерживает data: URL-адреса. Я подал радар: // problem / 13649313 в Apple с просьбой документировать это.

4 голосов
/ 21 января 2010

Встроенные протоколы URL могут обрабатывать схемы http, https, file, ftp, about и data.

Вы можете определить свои собственные протоколы, чтобы система NSURL автоматически обрабатывала новые схемы, используя класс NSURLProtocol.

...