我正在为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.
}
答案 0 :(得分:0)
我只想提出更简单的方法.. 这是一个粗略的想法如何执行和'+'
1。通过在显示标签上附加字符串,只显示文本字段中的用户类型和“+”操作。
2. 当用户点击'='时,只需读回标签并根据设置的标签执行操作。
3. 执行此类计算
NSArray *subStrings = [displayLabel componentsSeparatedByString:@"+"];
double answer = 0;
for(NSString *value in subStrings)
{
answer = answer + [value doubleValue];
}
答案 1 :(得分:0)
你可以这样做: 1.用户按下加号按钮,按钮将被镶边或任何你想给按钮的标志。 2.如果按下加号按钮,则在用户按下数字后等待数字(0 - 9),释放加号按钮并计算结果。并将其显示给用户。
即使用户未按下相等按钮,您也可以计算结果。
答案 2 :(得分: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;