各数値キーを個別の UIButton として含む電卓を iOs で作成しました。
電卓にNSString
入力される数値を保持する calcNumberString という名前があります。このようにして、最大桁数を超えたかどうかを確認し、ユーザーがそれ以上入力できないようにすることができます。
私のviewDidLoad
イベントでは、次のように calcNumberString を初期化します。
calcNumberString = [[NSString alloc] init];
数字キー (たとえば 5) を押すと、次のメソッドが起動します。
-(IBAction)buttonPressed5 : (id) sender
{
if(calcNumberString.length < 10)
{
calcNumberString = [calcNumberString stringByAppendingFormat:@"5"];
calcLabel.text = calcNumberString;
}
}
これは問題なく動作します (最大 10 桁まで入力できます)... CLEAR キーを押すまで:
-(IBAction)buttonPressedClear : (id) sender
{
calcNumberString = @"";
calcLabel.text = @"0"
}
期待どおりにクリアされますが、その後別の数字キーを押そうとするとEXC_BAD_ACCESS
、次のようになりますNSInvalidArgumentException
。
[__NSCFSet length]: unrecognized selector sent to instance 0x16c110
buttonPressClear
私が間違っている方法に何かありますか?? クリアしてから新しい数字を入力しようとするまで、すべてが正常に機能するため、明らかに問題です。
どんな助けでも大歓迎です。
ありがとうございました!