deleteCharactersInRange работает что-то не так

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

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

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

2 ответа

Решение

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

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"

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

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

результаты в:

-21.256
21.256

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

Другие вопросы по тегам