Pergunta

Eu tenho seguinte código no meu aplicativo.

NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]];

pathOfThumbNail tem seguinte caminho


http://70.84.58.40/projects/igolf/TipThumb/GOLF 58B .jpg


Quando abro acima caminho no browser safari -. Caminho é alterado automaticamente & imagem é exibida com sucesso

http://70.84.58.40/projects/igolf/TipThumb/GOLF% 2058B.jpg


Mas no iPhone, devido ao espaço no caminho, a imagem não é carregado na NSData.

Foi útil?

Solução

Use: stringByAddingPercentEscapesUsingEncoding:

Retorna uma representação do receptor utilizando uma determinada codificação para determinar a porcentagem escapa necessário converter o receptor a uma seqüência de URL jurídica.

-(NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding

A representação do receptor usando a codificação para determinar a porcentagem escapa necessário converter o receptor a uma seqüência de URL legal. Retorna nil se codificação não pode codificar um caráter particular

Adicionado por solicitação 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);

saída 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'  

Outras dicas

A rápida abordagem 3.0 (stringByAddingPercentEscapesUsingEncoding e stringByAddingPercentEncodingWithAllowedCharacters parece agora obsoleto):

let urlString ="your/url/".addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)

stringByAddingPercentEscapesUsingEncoding foi preterido no iOS 9.0, é recomendável que você use stringByAddingPercentEncodingWithAllowedCharacters vez.

Aqui está o código 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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top