0

我花了很长时间让这段代码正确地摆脱出来。我目前停留在文本的最后一行。我是一起编写代码的新手。我学到的一切都可以在网上和通过这个网站找到。请参阅下面带下划线的注释。请帮忙,让我看看我的计算是否有效......

//.h


@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UITextField *Price87;
@property (weak, nonatomic) IBOutlet UITextField *MPG87;
@property (weak, nonatomic) IBOutlet UITextField *PriceE85;
@property (weak, nonatomic) IBOutlet UITextField *MPGE85;
@property (weak, nonatomic) IBOutlet UITextField *GasTankSize;

- (IBAction)Settings:(id)sender;
- (IBAction)pergallon:(id)sender;
- (IBAction)pertank:(id)sender;

@end


//.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController   <-----------  Getting a Incomplete Implementation here...

- (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.
}

- (IBAction)Settings:(id)sender {
    Settings *settings = [[Settings alloc] initWithNibName:nil bundle:nil];
    [self presentViewController:settings animated:YES completion:NULL];
}

- (IBAction)addNums:(id)sender {
    int a = ([_Price87.text floatValue]);
    int b = ([_MPG87.text floatValue]);
    int c = ([_PriceE85.text floatValue]);
    int d = ([_MPGE85.text floatValue]);
    int e = ([_GasTankSize.text floatValue]);
    int ans = ((a*e)-((e+(a*e)-(c*e)/b)*d)/e);

    [ans setText:[NSString stringWithFormat:@"%i", pergallon]];   <---------  This is the line giving me trouble.  I'm getting a "use of undeclaired identifier 'pergallon'

}

@end
4

2 回答 2

0

您需要先使用 float 或 double 数据类型声明变量,然后才能使用它。

尝试用

@property (nonatomic) float pergallon;
于 2013-07-02T02:51:51.137 回答
0

好吧,您有很多错误,请考虑:

int a = ([_Price87.text floatValue]);

在右边的大小上,您为floatValue- 一个带有小数部分的浮点数,但在左边的大小上,您声明aint- 一个没有任何小数部分的整数。分配将截断数字,丢弃小数部分,例如 1.82 将变为 1。这可能不是您想要的。你的意思是宣布a成为一个float

但是让我们看看你的数学和单位——基于你给你的领域的名字。

a大概以 $/gale为单位,以 gal 为单位,因此a*e以 $ 为单位(加满油箱的价格)。让我们将单位放入等式的一部分:

e+(a*e) => gal + $

现在添加加仑和美元是没有意义的 - 你会得到一个数字,但它是一个无意义的数字。表达式的其余部分也没有什么意义。

编译器不会发现上述任何内容,计算机是快速的白痴- 要求他们计算废话,他们会这样做。

计算机将发现的是简单的错误。它抱怨的行是指pergallon,它不存在。您可能打算使用ans. 虽然修复它可能会让编译器满意,但它不会解决你的单元问题,你需要弄清楚你的数学。

HTH。

于 2013-07-02T04:52:58.667 回答