我在 iOs 中创建了一个计算器,包括每个数字键作为单独的 UIButton。
我有一个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
我做错了吗?这显然是问题所在,因为在我清除并尝试输入新数字之前一切正常。
任何帮助将不胜感激。
谢谢!