Подтвердить что ты не робот

UIApplication openUrl не работает с форматированным NSString

У меня есть следующий код для открытия карт google:

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

Но это не работает, и ошибок нет. Он просто не открывается.

4b9b3361

Ответ 1

URLWithString требует строку с пропущенным процентом. Ваш образец url содержит пробелы, которые приводят к созданию nUR NSURL. Кроме того, адресString может также содержать символы, которые необходимо экранировать. Попробуйте выполнить процентное удаление строки url:

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
NSString *escaped = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:escaped]];  

Ответ 2

Необходимо избегать urlString, else [NSURL URLWithString: urlString] вернет нуль.

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ]];