2011-12-29 43 views
3

我收到錯誤:Objective-C的無效操作數的二進制表示

invalid operands to binary expression ('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]; 
} 

回答

5

你要問每個UITextField其價值(這是text屬性),並將每個值從一個字符串轉換爲一個浮點數。例如。

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

您需要將UITextField對象轉換爲數字,您可以使用這些數字進行運算。

UITextField類有屬性「text」,其中包含NSString表示該字段的內容。

因此,舉例來說:

NSString *milesString = miles.text; 

要將其轉換成浮動:

float milesValue = [milesString floatValue] 

那麼你可以做你的算術與milesValue等。

當然你也可以用簡化的任務:

float milesValue = [miles.text floatValue] 
相關問題