activo - nfc iphone xr
Cómo hacer un NSURL que contiene un |(personaje de la pipa)? (3)
¿Ha intentado reemplazar la tubería con %7C
(el valor codificado de URL para el char |
)?
Estoy tratando de acceder al servicio de geocodificación de Google Maps desde mi aplicación de iPhone. Cuando trato de hacer un NSURL a partir de una cadena con una tubería, solo obtengo un puntero nulo.
NSURL *searchURL = [NSURL URLWithString:@"http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false"];
No veo ninguna otra forma en la API de Google para enviar coordenadas de límites sin una canalización. ¿Alguna idea sobre cómo puedo hacer esto?
Como stringByAddingPercentEscapesUsingEncoding
está en desuso, debe usar stringByAddingPercentEncodingWithAllowedCharacters
.
Respuesta rápida:
let rawUrlStr = "http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false";
let urlEncoded = rawUrlStr.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
let url = NSURL(string: urlEncoded)
Edición: Swift 3 respuesta:
let rawUrlStr = "http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false";
if let urlEncoded = rawUrlStr.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
let url = NSURL(string: urlEncoded)
}
Si quieres estar seguro para los caracteres extraños que pondrás en el futuro, usa el método stringByAddingPercentEscapesUsingEncoding
para hacer que la cadena sea "amigable con URL" ...
NSString *rawUrlStr = @"http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false";
NSString *urlStr = [rawUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *searchURL = [NSURL URLWithString:urlStr];