Я использую метод ниже, чтобы проверить, является ли NSString testString действительным URL:
NSURL *testURL = [NSURL URLWithString:testString];
if (testURL && [testURL scheme] && [testURL host])
{
NSLog(@"valid");
}
{
NSLog(@"not valid");
}
схема проверяет префикс URL, например, http://, https: // или ftp: //
host проверяет домен URL, например, google.com или images.google.com
Примечание: это все равно даст вам ложные срабатывания, например, при проверке http://google,com (обратите внимание на запятую) вернется valid , но это определенно точнее, чем просто проверка, является ли NSURL не nil ([NSURL urlWithString:@"banana"]
не nil).