【问题标题】:Objective-C invalid operands to binary expressionObjective-C 二进制表达式的无效操作数
【发布时间】:2011-12-29 05:28:02
【问题描述】:

我收到错误:

二进制表达式的无效操作数 ('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];
}

【问题讨论】:

    标签: objective-c ios5 xcode4.2


    【解决方案1】:

    您需要向每个UITextField 询问其值(即text 属性),并将每个值从字符串转换为浮点数。例如

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

    【讨论】:

      【解决方案2】:

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

      UITextField 类具有属性“text”,其中包含代表字段内容的 NSString

      所以,例如:

      NSString *milesString = miles.text;
      

      要将其转换为浮点数:

      float milesValue = [milesString floatValue]
      

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

      当然,您可以通过以下方式简化分配:

      float milesValue = [miles.text floatValue]
      

      【讨论】:

        猜你喜欢
        • 2016-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多