我最近开始在 iTunes U 上关注斯坦福大学关于 iPhone 开发的在线课程。
我现在正在为前几节课做家庭作业。我完成了构建基本计算器的演练,但现在我正在尝试第一个作业,但似乎无法解决。如下:
您的计算器已经可以处理浮点数(例如,如果您按 3 / 4 = 它将正确显示结果值 0.75),但是,用户无法输入浮点数。补救这个。只允许输入合法的浮点数(例如“192.168.0.1”不是合法的浮点数)。
首先,我不确定浮点数是否算作digitPressed
或operationPressed
。我什至尝试了一种名为的新方法floatingPointPressed
,但并没有真正奏效。有人可以提供这方面的指示吗?
当我看到它是 digitPressed 时,我尝试了这样的事情:
if (hasFloatingPoint) {
NSRange range = [[display text] rangeOfString:@"."];
if (range.location == NSNotFound)
{
[display setText:[[display text] stringByAppendingFormat:digit]];
hasFloatingPoint = YES;
}
}
else {
[display setText:[[display text] stringByAppendingFormat:digit]];
}
但我认为我在这里遗漏了关键概念。
我还尝试了另一种解决方案,可悲的是,我已经撤消了,所以我无法提供代码,但发生的事情是:我可以按一个数字,比如说5
,然后是一个浮点数,3
所以我最终会得到5.3
. 然后我设法“禁用”其余输入的浮点数。但我想我对它有点太严格了:例如,我不能输入,5.3.2
但在按下操作按钮(+
等)之后,它仍然不会让我按下浮点按钮。我想我应该重置我用于此的布尔值?
我不是在这里寻找一个完全书面的解决方案,但是有人可以这么好心地提供一些关于如何解决这个问题的基本建议吗?对我应该做什么和思考的事情进行某种分步概述,但实际上并未提供代码解决方案。
提前致谢。