我最近开始在iTunes U上学习斯坦福大学关于iPhone开发的在线 class 。

我现在正在做前几节课的作业。我逐步完成了构建基本计算器的演练,但是现在我正在尝试第一个任务,但似乎无法解决。如下:

如果用户点击了错误的数字按钮,请实施一个“退格”按钮以供用户按下。这并不是要“撤消”,所以如果它们击中
错误的操作按钮,他们很不走运!由您决定
决定如何处理退格整个
他们在输入中间的数字,但显示
完全空白可能不是很友好。

我遵循此:Creating backspace on iOS calculator

所以代码是

-(IBAction)backspacePressed:(UIButton *)sender {

    NSMutableString *string = (NSMutableString*)[display text];

    int length = [string length];

    NSString *temp = [string substringToIndex:length-1];

    [display setText:[NSString stringWithFormat:@"%@",temp]];

}

我的问题是我不应该检查我的最后一个数字还是操作数?如果是操作数,则不执行,如果是数字,则将其删除...

最佳答案

首先,该代码中有几个不必要的步骤...要回答您的问题,是的,您应该检查一个操作数。这是我如何通过检查编写该方法的方法:

NSString *text = [display text];
int length = [text length];
unichar c = [text characterAtIndex:length];
NSCharacterSet *digits = [NSCharacterSet decimalCharacterSet];
if ([digits characterIsMember:c] || c == '.') {
    NSString *temp = [[display text] substringToIndex:length-1];
    [display setText:temp];
}

关于objective-c - CS193p-向计算器添加退格键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9144199/

10-11 19:49