iphone - NSData & NSURL-url con problemas de espacio
xcode (3)
Un enfoque rápido de 3.0 (stringByAddingPercentEscapesUsingEncoding y stringByAddingPercentEncodingWithAllowedCharacters ahora está en desuso):
let urlString ="your/url/".addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)
Tengo el siguiente código en mi aplicación.
NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]];
pathOfThumbNail tiene la siguiente ruta
http://70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg
Cuando abro la ruta anterior en el navegador de safari, la ruta se cambia automáticamente y la imagen se muestra con éxito.
http://70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg
Pero en iPhone, debido al espacio en la ruta, la imagen no se carga en nsdata.
Uso: stringByAddingPercentEscapesUsingEncoding:
Devuelve una representación del receptor utilizando una codificación dada para determinar el porcentaje de escapes necesarios para convertir el receptor en una cadena de URL legal.
-(NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
Una representación del receptor que utiliza la codificación para determinar el porcentaje de escapes necesarios para convertir el receptor en una cadena de URL legal. Devuelve nil si la codificación no puede codificar un carácter particular
Añadido por solicitud por @rule
NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
NSLog(@"urlText: ''%@''", urlText);
NSLog(@"urlTextEscaped: ''%@''", urlTextEscaped);
NSLog(@"url: ''%@''", url);
Salida de NSLog:
urlText: ''70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg'' urlTextEscaped: ''70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg'' url: ''70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg''
stringByAddingPercentEscapesUsingEncoding
ha quedado en desuso en iOS 9.0, se recomienda usar stringByAddingPercentEncodingWithAllowedCharacters
en stringByAddingPercentEncodingWithAllowedCharacters
lugar.
Aquí está el código de Objective-C para> iOS 9.0
NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
enter code here
NSLog(@"urlText: ''%@''", urlText);
NSLog(@"urlTextEscaped: ''%@''", urlTextEscaped);
NSLog(@"url: ''%@''", url);