存储用户输入,计算并显示到底

时间:2011-09-09 07:51:45

标签: iphone objective-c textfield

我正在编写一个计算用户给出的输入的程序,简单的数字。 2,4,7,10,12等。

我需要程序以某种方式存储这些输入(来自不同的文本字段)。在内部等式中使用它们,然后最后将它们显示给用户。

我该怎么做?请注意,我是编程新手。

我知道如何定义textFields,做一个IBAction计算,我尝试创建一个 - (void)计算,它可以工作,但只能在1个输入上运行。当我执行以下代码时,输​​入来自6个文本字段而不是3个(在第一行(resultOne)中使用),它给出了错误的数字。但我仍然需要一种更好的方法来做到这一点。

-(void) calculate{
weightOne = [v1Text.text floatValue]/2; 
weightTwo = [v2Text.text floatValue]/2;
resultOne = [m1Text.text floatValue] * weightOne + [s1Text.text floatValue] * weightOne;
resultTwo = [m2Text.text floatValue] * weightTwo + [s2Text.text floatValue] * weightTwo;
_resultTotal = (resultOne + resultTwo) / (weightOne + weightTwo);

NSString *resultString = [[NSString alloc] 
                          initWithFormat: @"%.2f", resultOne];
resultLabel.text = resultString;
[resultString release];
}

我知道上面的代码输出了resultOne,但这只是我自己的测试,知道方程式有效。但我真的很想重新开始,因为我不相信上面的代码适合我需要做的事情。

请记住我是初学者,并解释一下,而不仅仅是向我展示一些代码。

我期待着你能给我的任何帮助。

修改! - 以下是新代码

-(IBAction) calculate:(id)sender {
weightOne = 1; 
weightTwo = 0.75;
weightThree = 0.50;

mOne = [m1Text.text floatValue];
mTwo = [m2Text.text floatValue];
sOne = [s1Text.text floatValue];
sTwo = [s2Text.text floatValue];

resultOne = (mOne*weightOne) + (sOne*weightOne);
resultTwo = (mTwo*weightTwo) + (sTwo*weightTwo);

_resultTotal = (resultOne + resultTwo) / (weightOne*2 + weightTwo*2);

NSString *resultString = [[NSString alloc] 
                          initWithFormat: @"Gennemsnit %.2f", _resultTotal];
resultLabel.text = resultString;

}

我决定更改我的代码,以便轻松计算输入。现在我有另一个问题。

是否可以以某种方式保存此等式,因此我可以根据需要多次重复使用它,而无需一次又一次地键入代码。

1 个答案:

答案 0 :(得分:1)

首先,计算可以是您的IBAction方法,当按下按钮时将调用该方法。因此,将原型更改为-(IBAction)calculate:(id)sender

接下来,如果您能够为文本字段添加插座,那么在输入文本时没有任何损害,并且绝对没有任何困难。

您可以做的几件事就是验证输入是否正确。 [v1Text.text floatValue]是从文本中获取数字的正确表达式。您还可以查看intvalue

现在,一旦完成计算,就可以使用对要显示结果的label/textfield的引用。

您可以完全按照代码中的方式更改该标签。