0

こんにちは、みんな!NSMutableString からメッセージ deleteCharactersInRange を使用しています。そして、この関数は間違った方法で範囲を削除するという問題があります。正しく動作しないコードのサンプルを次に示します。

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

変更可能な文字列「-21.256」があり、ボタン btnClick を押すと、最初から「-」を削除する必要がありますが、5回押した後にのみ削除されます。以前はうまくいきましたが、今はうまくいきません。助けてください、またはこの関数の代わりに何を使用できますか? ありがとう!

4

2 に答える 2

0

あなたのコードは問題なく動作するはずです:

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

結果:

-21.256
21.256

あなたの問題は他の場所にあるはずです。

于 2010-10-24T02:27:16.263 に答える
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"

于 2010-10-24T19:50:54.507 に答える