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
Ваша проблема должна быть в другом месте.