我想我会尝试将两个用户输入相加并显示为标签。我写了代码,并且已经盯着并改变代码两天了。如果有人愿意帮助解释我做错了什么,我将非常感激。一切都在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
答案 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。