Вы получаете% 2520, когда ваш URL уже содержит% 20 и снова кодируется в URL, что преобразует% 20 в% 2520.% 255B - это то, что вы получаете, когда дважды кодируете квадратные скобки.
вы можете попробовать следующий код в пустом проекте:
NSString * str = @"/var/mobile/Containers/Data/Application/1392B0FE-F998-45A4-A398-A3ACB47ECE26/Library/Private Documents/Sample Image To Be Loaded.jpg";
NSString * encodedString = [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSLog(@"encodedString = %@", encodedString);
NSString * encodedStringAgain = [encodedString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSLog(@"encodedStringAgain = %@", encodedStringAgain);
Он печатает:
encodedString = /var/mobile/Containers/Data/Application/1392B0FE-F998-45A4-A398-A3ACB47ECE26/Library/Private%20Documents/Sample%20Image%20To%20Be%20Loaded.jpg
encodedStvar / mobile / Containers / Data / Application / 1392B0FE-F998-45A4-A398-A3ACB47ECE26 / Библиотека / Личные% 2520Documents / Sample% 2520Image% 2520To% 2520Be% 2520Loaded.jpg
Все, что вам нужноdo в вашем коде:
NSURL *urlToLoad = [NSURL fileURLWithPath: fullPath];
с fullPath
исходной строкой без какой-либо кодировки.