获取两个用户输入以进行求和和显示

时间:2014-01-07 22:05:11

标签: ios objective-c variables

我想我会尝试将两个用户输入相加并显示为标签。我写了代码,并且已经盯着并改变代码两天了。如果有人愿意帮助解释我做错了什么,我将非常感激。一切都在IB和Xcode 5中正确链接。

我添加了我写的相关的.h和.m文件。但由于某些原因,无论我改变什么,我都无法将两个用户输入添加到一起。感谢您抽出宝贵的时间。

#import <UIKit/UIKit.h>

@interface AddViewController : UIViewController

@property (weak, nonatomic) IBOutlet UITextField *numberOne;

@property (weak, nonatomic) IBOutlet UITextField *numberTwo;

- (IBAction)plusButton:(UIButton *)sender;

@property (weak, nonatomic) IBOutlet UILabel *sumTotal;

@end


.m

#import "AddViewController.h"

@interface AddViewController ()

@end

@implementation AddViewController

    int numberOne;
    int numberTwo;



- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (float) addTwoNumbers:(float) numberOne to: (float)numberTwo
{

    return  ((numberOne) + (numberTwo));
}


- (IBAction)plusButton:(id)sender
{

   // self.sumTotal.text = [self addTwoNumbers: numberOne:numberTwo];

    int numberTwo = ([_numberTwo.text integerValue]);


    int sumTotal = [self addTwoNumbers:(int)numberOne to:(int)numberTwo];

  //  self.sumTotal.text = [NSString stringWithFormat:@"%d", numberOne + numberTwo];

    self.sumTotal.text = [NSString stringWithFormat:@"%d", sumTotal];
}
@end

3 个答案:

答案 0 :(得分:2)

由于你的输入字段和int会让你感到困惑,所以不要对事物进行如此类似的命名很有帮助。

您需要添加

int numberOne = ([_numberOne.text integerValue]);

到plusButton方法。在addTwoNumbers:方法中使用浮点数不会有太大的伤害,但你可以做那些int

答案 1 :(得分:0)

请尝试使用plusButton:方法:

- (IBAction)plusButton:(id)sender {
    int numberOne = [_numberOne.text intValue];
    int numberTwo = [_numberTwo.text intValue];
    int sumTotal = numberOne + numberTwo;
    self.sumTotal.text = [NSString stringWithFormat:@"%d", sumTotal];
}

你似乎也喜欢很多额外的括号。不需要大多数人。

此外,在numberOne行之后声明的numberTwo@implementation变量实际上是文件全局变量,而不是实例变量。既然你还没有使用它们,请摆脱它们。

答案 2 :(得分:0)

这样的事情应该有效:

- (IBAction)plusButton:(id)sender{
    int total = [_numberOne.text integerValue] + [_numberTwo.text integerValue];
    self.sumTotal.text = [NSString stringWithFormat:@"%i", total];
}

仅供参考,此解决方案使用文本视图中存储的值。实际上,这些值应该按照MVC约定存储在“模型”对象中。

我建议用户在输入数字时,使用该输入来更新模型。然后,使用模型值进行计算。当您声明...

时,您似乎试图这样做
int numberOne;
int numberTwo;

...但你没有更新它们。我还建议你将你的视图重命名为numberOneView,这样你就不会混淆你引用int和UITextField。