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

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

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

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

18
задан Petros Koutsolampros 7 March 2014 в 23:52
поделиться

2 ответа

URLWithString требует строки с экранированным процентом. Ваш образец URL-адреса содержит пробелы, что приводит к созданию нулевого NSURL. Кроме того, addressString может также содержать символы, которые необходимо экранировать. Попробуйте сначала экранировать строку 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]];  
44
ответ дан 30 November 2019 в 06:29
поделиться

Нужно экранировать urlString , иначе [NSURL URLWithString:urlString] вернет nill.

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ]];
5
ответ дан 30 November 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: