deleteCharactersInRange работает что-то не так - PullRequest
0 голосов
/ 23 октября 2010

Привет всем! Я использую сообщение deleteCharactersInRange из NSMutableString. И есть проблема в том, что эта функция удаляет диапазон неправильно. Вот пример кода, который работает неправильно:

- (void) btnClick { NSRange deleteRange = NSMakeRange (0, 1); [valueStr deleteCharactersInRange: deleteRange]; [self ShowNumber]; }

У меня есть изменяемая строка: "-21.256", и когда я нажимаю кнопку btnClick, она должна удалить "-" с начала, но это происходит только после 5-го нажатия. Раньше все работало нормально, а сейчас нет. Помогите пожалуйста, или что я могу использовать вместо этой функции? Thanx!

Ответы [ 2 ]

0 голосов
/ 24 октября 2010

Думаю, вам будет интересно.Я инициализировал свою строку следующим образом:

NSString *buf = nil;
buf = [NSString stringWithFormat:@"%14.5f", myCalculator.calcValue];

, после чего я добавляю эту строку в мою NSMutableString.А со строкой я делал операции с помощью func:

[string deleteCharactersInRange:NSMakeRange(0, 1)];

Но символы удалялись только после 6 или 7 циклов нажатия.

Решение:

Проблема в @ "% 14.5f" в этой строке у нас есть: "-2.00000" вместо "-2.00000", поэтому функция работает хорошо, но вместо этого она удаляет пробелыиз "-".

Так что нам нужно конвертировать таким образом: @ "% f"

0 голосов
/ 24 октября 2010

Ваш код должен работать просто отлично:

NSMutableString *string = [NSMutableString stringWithString:@"-21.256"];
NSLog(@"%@", string);
[string deleteCharactersInRange:NSMakeRange(0, 1)];
NSLog(@"%@", string);

Результат:

-21.256
21.256

Ваша проблема должна быть в другом месте.

...