0

我正在为 iPhone 制作一个非常基本的简单计算器。我正在使用来自 GitHub 的示例代码并对其进行扩展。

https://github.com/teikenshi/xcode-calculator/tree/master/kadai06

这是我遇到的问题。如果我想把这些数字加在一起

2,5,6,8

使用当前代码,我必须按此顺序按下按钮

2 + 5 =

+ 6 =

+ 8 =

这意味着我每次添加两个数字时都必须按下相等按钮

我想做的是普通人如何添加数字,即他们将按数字按钮并按此顺序单击加号按钮

2 + 5 + 6 + 8 (calculator keeps adding the numbers up and shows the addition results).

现在我承认这不是最优雅的代码,也不是最好的计算器代码,但如果有人可以帮助我修复此代码或为我指出更好的示例计算器代码,那么我完全开放。

- (IBAction)plus:(id)sender
{
//what code logic should go in here. 
}
4

3 回答 3

0

我只是想建议更简单的方法..这是如何为 sum '+' 执行的粗略想法

1.通过将字符串附加到显示标签,只需显示用户在文本字段中键入的内容和“+”等操作。

2.当用户点击'='等于时,只需读取标签并根据设置的标签执行操作。

3.像这样进行计算

NSArray *subStrings = [displayLabel componentsSeparatedByString:@"+"];

double answer = 0;

for(NSString *value in subStrings)
{
   answer = answer + [value doubleValue];
}
于 2013-10-30T20:45:29.327 回答
0

您可以执行以下操作: 1. 用户按下加号按钮,按钮将带有边框或您想给按钮的任何符号。2.如果加号按钮被按下,你等待数字(0 - 9)一旦用户按下它你释放加号按钮并计算结果。并将其展示给用户。

这样即使用户没有按下相等按钮,您也只需计算结果。

于 2013-10-30T20:46:02.930 回答
0

您可以将计算器的运行结果存储在一个变量中,并为不同的操作处理它。也许为了加号尝试这样的事情

@property (strong, nonatomic) NSString *result;
@property (weak, nonatomic) IBOutlet UILabel *calculatorDisplay;

- (IBAction)plus:(id)sender
  {
    if (!self.result) {
         self.result = self.calculatorDisplay.text;
    } else {
         // Otherwise we have to add the previous result to the current display
         double toAdd = [self.calculatorDisplay.text doubleValue];
         double current = [self.result doubleValue];
         double result = current + toAdd;
         self.result = [NSString stringWithFormat:@"%f", result];
    }
  }

然后也许在一个明确的 IBAction 中你将 self.result 重置为 nil;

于 2013-10-30T20:57:21.543 回答