0

私は単純な計算機を実装しています。

ユーザーが数字ボタンをクリックするたびに、sender.tag が displayString と呼ばれる nsmutable 文字列に追加され、画面に表示されます。

変更可能な文字列は、サイズ 40 で開始されます。

奇妙なことに、たとえば 10 桁を入力した後1111111111、文字列が正しく動作しません。

数字ボタン '1' をクリックし続けると、文字列に '1' が追加されなくなりますが、2 や 6 などの別の値が追加され、突然 のような数字が表示され25469632154ます!

デバッガーで確認しました - 問題はディスプレイからではなく、文字列自体に正しく追加されていません。

sender.tag正しく渡されていない可能性がありますか?

ここで何が問題になる可能性がありますか?

[displayString appendString: [NSString stringWithFormat: @"%i", [sender tag]]];  
self.lblDisplay.text = displayString;
4

2 に答える 2

1

SOへようこそ!すべてのタグをログに記録して、問題がどこにあるかを判断できます。

NSLog(@"%d", [sender tag])

Tag%dプロパティはNSIntegerタイプであるため、。の代わりに修飾子を使用できます%iappendFormatまた、次の方法を使用できます。

[displayString appendFormat:@"%d",[sender tag]];
self.lblDisplay.text = displayString;
于 2012-08-26T10:03:07.247 に答える
1

なぜあなたは使用していNSMutableStringますか?なぜこれをしないのですか:

self.lblDisplay.text = [self.lblDisplay.text stringByAppendingFormat:@"%d", [sender tag]];

とにかく、タグをどのように設定していますか?そのコードを投稿してください。私の推測では、タグを渡したり、値を追加したりするのではなく、何かが間違っていると思います。

于 2012-08-26T22:36:51.007 に答える