NSURLRequest и запрашиваемая страница - PullRequest
0 голосов
/ 13 февраля 2009

Я перехватил ссылку, щелкнувшую информацию в UIWebView в делегате shouldStartLoadWithRequest. Я использую mainDocumentURL, чтобы получить ссылку на ссылку нажал. Это показывает полный URL-адрес, но мне нужно просто имя страницы, т.е. запрошенные .html, .htm и т. Д. Я не вижу никакой собственности, которая могла бы вернуть это. Нужно ли мне анализировать и извлекать это самостоятельно или кто-нибудь знает, есть ли свойство или метод в NSURLRequest, который вернет это.

Большое спасибо за вашу помощь. Тони

Ответы [ 3 ]

2 голосов
/ 13 февраля 2009

Если я правильно вас понимаю, вы хотите преобразовать в строку NSString, а затем использовать ее методы. Начиная с NSURLRequest, вы должны сделать что-то вроде этого (заметьте, я набрал это на веб-странице и не скомпилировал):

NSURL *url = [request URL];
NSString *filename = [[url path] lastPathComponent];

Если ваш URL нам что-то вроде http://www.foo.com/bar/baz.html,, это даст вам «baz.html».

1 голос
/ 13 февраля 2009

Я думаю, что вы имеете в виду путь URL. Приведенный ниже код извлекает строку s, значение которой равно @ "/ cheese.html".

NSURL* u = [NSURL URLWithString:@"http://www.wibble.com/cheese.html"];
NSString* s = [u path];

Посмотрите документацию по RFC 1808, в которой рассказывается, как составляется URL, а затем прочитайте документацию Apple по NSURL, в которой рассказывается, как извлечь эти части URL.

0 голосов
/ 13 февраля 2009

NSURL может извлекать большинство элементов URL. Я подозреваю, что вы имеете в виду путь, к которому можно получить доступ с помощью сообщения о пути.

Если вы действительно хотите расширение из пути, я предлагаю вам использовать путь, а затем изучить возвращенную строку NSString или преобразовать весь URL-адрес в строку, отправив сообщение absoluteString. Вырезание расширения из строки NSS может быть выполнено многими способами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...