Objective-C二进制表达式的操作数无效

时间:2011-12-29 05:28:02

标签: objective-c ios5 xcode4.2

我收到错误:

  

二进制表达式的无效操作数('UITextField')

我的.h看起来像这样:

@interface ViewController : UIViewController{

    IBOutlet UILabel *resultLabel;
    float result;
    IBOutlet UITextField *miles;
    IBOutlet UITextField *mpgLoaded;
    IBOutlet UITextField *mpgEmpty;
    IBOutlet UITextField *fuelCost;
    IBOutlet UITextField *payment;
}

-(IBAction)result:(id)sender;

-(IBAction)reset:(id)sender;


@end

错误来自我试图在.m中进行的计算:

-(IBAction)result:(id)sender{
    result = payment - ((miles/mpgLoaded)*fuelCost)-((miles/mpgEmpty)*fuelCost);
    resultLabel.text = [NSString stringWithFormat:@"%.2f",result];
}

2 个答案:

答案 0 :(得分:5)

您需要询问每个UITextField的值(即text属性),并将每个值从字符串转换为float。 E.g。

result = payment.text.floatValue - ((miles.text.floatValue / ...

答案 1 :(得分:3)

您需要将UITextField个对象转换为可以进行算术运算的数字。

UITextField类的属性为“text”,其中包含表示该字段内容的NSString

所以,例如:

NSString *milesString = miles.text;

将其转换为浮动:

float milesValue = [milesString floatValue]

然后,您可以使用milesValue等进行算术运算。

当然,您可以使用以下方式简化作业:

float milesValue = [miles.text floatValue]