Как я могу проверить, что NSURL действителен или нет? 1) Если я нахожу «facebook.com», тогда он должен добавить «http://www».Как проверить действительный URL?
2) Если я вхожу "www.facebook.com", то он должен добавить "HTTP: //"
3) Если я вхожу "Facebook", то он должен искать в гугле.
Как я могу это достичь ??
Я делаю это следующим образом, но он не работает. Он всегда возвращает истину для третьего случая. («http://www.facebook»)
if (![url.absoluteString.lowercaseString hasPrefix:@"http://"])
{
if(![url.absoluteString.lowercaseString hasPrefix:@"www."])
{
url = [NSURL URLWithString:[@"http://www." stringByAppendingString:locationField.text]];
}
else
{
url = [NSURL URLWithString:[@"http://" stringByAppendingString:locationField.text]];
}
}
if(![self validateUrl:url.absoluteString])
{
url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com/search?q=%@",[locationField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
}
- (BOOL) validateUrl:(NSString *)candidate
{
NSString *urlRegEx = @"((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
return [urlTest evaluateWithObject:candidate];
}
добавить NSLog для этого url.absoluteString и вставьте результат – Walucas
Ваша логика неверна. Для URL 'facebook' вы в конечном итоге меняете его на' http: // www.facebook', а затем проверяете его. – rmaddy
@Walucas nslog = absoluteString = http: //www.facebook – Rox