URLWithString: ноль возвратов

это может быть очень легко, но я не делаю, кажется, узнает, почему URLWithString: возврат ноля здесь.

//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];
92
задан gcamp 29 April 2013 в 17:59
поделиться

4 ответа

Вам также необходимо экранировать не-ASCII символы в вашем жестко закодированном URL:

//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", webName];
NSString* webStringURL = [stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL* url = [NSURL URLWithString:webStringURL];

Вероятно, вы можете удалить экранирование локализацииName, так как оно будет обработано экранированием всей строки.

.
201
ответ дан 24 November 2019 в 06:25
поделиться

Я думаю, что ваши акцентированные персонажи сбрасывают со счетов; они не будут обрабатываться с помощью -stringByAddingPercentEscapesUsingEncoding:.

2
ответ дан 24 November 2019 в 06:25
поделиться

-[NSString stringByAddingPercentEscapesUsingEncoding:]-[NSString stringByAddingPercentEscapesUsingEncoding:]-[NSString stringByAddingPercentEscapesUsingEncoding:]. Смотрите -[Apple doc.

Другой комментарий заключается в том, что, как старый таймер, я нахожу немного неудобным помещать не-ASCII символы в исходный файл. Тем не менее, в этом Apple doc говорится, что начиная с 10.4, строки UTF-16 в @"...". Каким-то образом GCC, кажется, правильно преобразует исходный файл на латинице-1 в UTF-16 в двоичном варианте, но я думаю, что безопаснее всего использовать 7-битные ASCII-символы только внутри исходного кода, и использовать NSLocalizedString.

8
ответ дан 24 November 2019 в 06:25
поделиться

Вызов URLWithString: возвращает ноль, если переданная ему строка неправильно сформирована. Поскольку NSURL возвращает nil для неправильно сформированных урлов, запишите в NSLog вашу строку и установите точки останова, чтобы увидеть, что именно передается в ваш метод создания NSURL. Если ваш URLWithString работает с жестко закодированным значением, это еще одно доказательство того, что все, что вы передаете, неправильно сформировано. see

0
ответ дан 24 November 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: