2012-06-01 4 views
2

Мне нужно проанализировать URL-адрес ФАЙЛА в моем приложении и заменить% 20 ​​на пробел. Я использую stringByReplacingOccurance:stringByReplacingOccurrence не заменяет строку

NSString *strippedContent = [finalFilePath stringByReplacingOccurrencesOfString:@"%20" withString:@" "]; 

Но когда я показываю strippedContent в NSLog, все% 20 строк по-прежнему существует. Вот пример имени файла, я надеюсь разобрать:

.../Documents/Inbox/Test%20Doc%20From%20Another%20App.txt 

Кажется, как будто NSFileManager не может найти документ, если он имеет 20% в нем. Путь к файлу передается из другого приложения через диалог «Открыть в ...». Есть ли способ удалить% 20 ​​с помощью stringByReplacingOccurrence или когда импортируется URL?

+0

Я попробовал этот код NSString * finalFilePath = @».../Документы/Входящие/Тест% 20Doc% 20From% 20Another% 20App.txt "; NSString * strippedContent = [finalFilePath stringByReplacingOccurrencesOfString: @ "% 20" withString: @ ""]; // введите код здесь ... NSLog (@ "% @", strippedContent); Я получил вывод «.../Documents/Inbox/Test Doc From Another App.txt» –

+0

Я думаю, что ваш код работает правильно. –

ответ

9

NSString предоставляет метод, который выполняет преобразование, что вам нужно:

NSString *strippedContent = [finalFilePath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
+0

Следует отметить, что это ТОЛЬКО удаляет символы Percent, и им придется выполнить другой проход используя NSString * strippedContent = [finalFilePath stringByReplacingOccurrencesOfString: @ "20" withString: @ ""]; – trumpetlicks

1

Да, вы должны использовать:

NSString * strippedContent = [finalFilePath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
+0

Он хочет удалить проценты экранов, а не добавлять их. –

+0

@ Эван Мулавски извините, исправил его – self

+0

@self - В чем разница b/w вашего и '@ dasblinkenlight'? – TheTiger

Смежные вопросы