2008-10-10 3 views
4

Я пытаюсь создать доморощенный веб-браузер, чтобы получить больше опыта в Cocoa. Мне нужен хороший способ проверить, введен ли пользователь действительным URL. Я пробовал некоторые регулярные выражения, но NSString имеет некоторые интересные причуды и не нравится некоторые из обратных цитат, которые большинство регулярных выражений я видел.Каков наилучший способ проверки введенного пользователем URL в приложении Cocoa?

ответ

5

Вы можете начать с метода + (id)URLWithString:(NSString *)URLStringNSURL, который возвращает nil, если строка неверна.

Если вам нужна дополнительная проверка, вы можете использовать baseURL, host, parameterString, path и т.д. методы, чтобы дать вам конкретные компоненты URL, который вы можете оценить в какой бы путь вы посчитаете нужным.

+0

Спасибо, отлично! – mclaughlinj 2008-10-10 22:36:00

4

Я обнаружил, что можно ввести некоторые URL-адреса, которые выглядят нормально, но отклоняются методами создания NSURL. Итак, у нас есть способ избежать строки сначала, чтобы убедиться, что она в хорошем формате. Вот его мясо:

 
NSString *escapedURLString = 
    NSMakeCollectable(CFURLCreateStringByAddingPercentEscapes(NULL, 
     (CFStringRef)URLString, 
     (CFStringRef)@"%+#", // Characters to leave unescaped 
     NULL, 
     kCFStringEncodingUTF8)); 
Смежные вопросы