Это потому, что вы пропустили строку кода. В вашей stringWithFormat:
версии вы, вероятно, имеете что-то вроде
NSString *str = [NSString stringWithFormat:@"%%5B5%%5D"];
NSLog(str);
Проблема в том, что вы теперь интерпретируете символы строки с двойной интерпретацией. Помните, что первый аргумент NSLog()
и +[NSString stringWithFormat:]
- это строка формата, где символы %
обрабатываются специально. В обоих случаях вы можете легко сохранить исходную версию строки (и убрать дубликат% с опережением времени), используя фактические строки формата, как в
NSLog(@"%@", @"%5B%5D");