deleteCharactersInRange工作有误

时间:2010-10-23 19:17:44

标签: iphone objective-c nsmutablestring

全部!我正在使用来自NSMutableString的消息deleteCharactersInRange。并且有一个问题是这个结果以错误的方式删除了范围。 以下是一个错误的代码示例:

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

我有一个可变的字符串:“ - 21.256”当我按下按钮btnClick它必须从开头删除“ - ”但它只在第5次按下时间后才会这样做。 Ealier工作得很好,但现在没有。请帮助,或者我可以使用什么代替这个功能?感谢名单!

2 个答案:

答案 0 :(得分:0)

您的代码应该可以正常运行:

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

结果:

-21.256
21.256

你的问题必须在其他地方。

答案 1 :(得分:0)

我认为你会感兴趣。 我以这种方式将我的字符串显示出来:

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”