pode ser muito fácil, mas não consigo descobrir por que não URLWithString:
retornar nada aqui.
//localisationName is a arbitrary string here
NSString* webName = [localisationName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString* stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@,Montréal,Communauté-Urbaine-de-Montréal,Québec,Canadae&output=csv&oe=utf8&sensor=false&key=", webName];
NSURL* url = [NSURL URLWithString:stringURL];
webName
antes de sua chamada parastringWithFormat:
? Então, qual é o valor destringURL
antes de ligar paraURLWithString:
? UseNSLog()
para imprimi-los passo a passo ou definir pontos de interrupção e inspecionar os valores à medida que são definidos.Respostas:
Você também precisa escapar os caracteres não ASCII em seu URL codificado:
Você provavelmente pode remover o escape de localisationName, uma vez que ele será tratado pelo escape de toda a string.
fonte
stringByAddingPercentEscapesUsingEncoding
converte # em% 2webStringURL = [stringURL stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet];
Use esta função se você lidar com arquivos salvos no gerenciador de arquivos.
fonte
Eu acho que você precisa usar
-[NSString stringByAddingPercentEscapesUsingEncoding:]
. Veja o documento da Apple .Outro comentário é que, como um veterano, acho um pouco desconfortável colocar caracteres não ASCII em um arquivo de origem. Dito isso, este documento da Apple diz que, a partir de 10.4, strings UTF-16 estão OK por dentro
@"..."
. De alguma forma, o GCC parece converter corretamente o arquivo de origem em Latin-1 em UTF-16 no binário, mas acho que é mais seguro usar caracteres ASCII de 7 bits apenas dentro do código-fonte e usarNSLocalizedString
.fonte
Acho que seus personagens com sotaque estão confundindo as coisas; eles não serão tratados por -stringByAddingPercentEscapesUsingEncoding :.
fonte
NSURL URLWithString: @ "" retornará nulo se o URL não estiver em conformidade com RFC 2396 e eles devem ter escape
Se você ler rfc2396 no link, obterá muitos detalhes
Um ótimo site que encontrei para verificar onde está o personagem ofensor, escolha a opção de caminho para URL
http://www.websitedev.de/temp/rfc2396-check.html.gz
fonte
A chamada URLWithString: retornará nulo se a string passada para ela estiver malformada. Como NSURL retorna nulo para urls malformados, faça NSLog em sua string e defina pontos de interrupção para ver exatamente o que está sendo passado para seu método de criação NSURL. Se o URLWithString funcionar com um valor codificado, isso é mais uma prova de que tudo o que você está passando está malformado. Vejo
fonte
Você pode usar NSURL diretamente sem NSString.
//.h arquivo
//.m arquivo
E eu passo a URL de outra visão (usando a variável NewsUrl) para esta visão.
Tente.
fonte