У меня есть следующий код для открытия карт Google:
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
Но это не работает и нет никакой ошибки. Это просто не открывается.
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]];
Нужно экранировать 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] ]];