NSURLConnection не загружает файлы с пробелами в имени - PullRequest
2 голосов
/ 29 июня 2011

Я работаю над загрузкой изображений в галерею на iPhone и столкнулся с проблемой.Очевидно, что что-то в сценарии не устраивает пробелы в имени файла при попытке загрузить изображения из Интернета.

Это строка подключения.

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]] delegate:self];

ИЯ передаю NSString в NSURL.Он работает на всех фотографиях без пробелов.

Пример злых фотографий: thumbs_WJ (16) .jpg thumbs_WJ (25) .jpg

Теперь я знаю, что могу вернуться и обновитьвсе фотографии, обновите базу данных и измените сценарий, чтобы он больше не добавлял пробелов ... но мы говорим о тысячах фотографий.

И предложения?

Ответы [ 3 ]

5 голосов
/ 29 июня 2011

нужно сделать строку:

str =[str stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
4 голосов
/ 29 июня 2011

Используйте NSString 'stringByAddingPercentEscapesUsingEncoding: метод для текста, который вы хотите включить в качестве аргумента.

С Apple Docs :

stringByAddingPercentEscapesUsingEncoding:

Возвращает представление получателя, используя заданную кодировку для определения процента экранирования, необходимого для преобразования получателя в допустимую строку URL.

Если ваша строка является "нормальной" строкой, вы можете использовать NSUTF8StringEncoding в качестве кодировки. В противном случае укажите кодировку, в которой находится ваша строка.

2 голосов
/ 29 июня 2011

Просто замените пробелы на "% 20" в вашей строке URL-адреса.

...