NSString / NSMutableString странное поведение - PullRequest
1 голос
/ 24 сентября 2011

ОК, вот nsmutablestring

data = [NSMutableString stringWithFormat:@"&cb_games%5B%5D="];

Теперь, когда я пытаюсь распечатать или использовать эту строку, вместо% 5B получаю большое число, а% 5D не уверен, почему это происходит, любая помощь будет расстроена

спасибо

Ответы [ 5 ]

4 голосов
/ 24 сентября 2011

Причина непредвиденного вывода в том, что '%' используется как спецификатор преобразования в printf и, очевидно, NSLog и NSString форматирование. Вам нужно экранировать '%', если вы не хотите, чтобы это интерпретировалось как спецификатор преобразования. Вы можете убежать '%', поставив перед ним еще один '%', такой как '%%'.

Ваша строка должна выглядеть,

@"&cb_games%%5B%%5D="

И ответ @ Августа Лиллеаса также заслуживает внимания.

2 голосов
/ 24 сентября 2011

stringWithFormat в основном printf, и он пытается заменить ваши проценты значениями, которые вы не указали, поэтому и происходят странные вещи.

[NSMutableString stringWithFormat:@"Hello: %d", 123];
// @"Hello: 123"

Если вам нужна изменяемая строка из строки, попробуйте это:

[NSMutableString stringWithString:@"Abc %2 %3"];
// @"Abc %2 %3"
2 голосов
/ 24 сентября 2011

Попробуйте это:

NSString * data = [NSMutableString stringWithFormat:@"&cb_games%%5B%%5D="];
NSLog(@"%@",data);
0 голосов
/ 24 сентября 2011

Вы хотели написать?

data = [NSMutableString stringWithString@"&cb_games%5B%5D="]
0 голосов
/ 24 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...