Неверные операнды Objective C к бинарному выражению - PullRequest
3 голосов
/ 29 декабря 2011

Я получаю сообщение об ошибке:

недопустимые операнды для двоичного выражения ('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 ]

5 голосов
/ 29 декабря 2011

Вам необходимо запросить у каждого UITextField его значение (которое является свойством text) и преобразовать каждое значение из строки в число с плавающей точкой.Например,

result = payment.text.floatValue - ((miles.text.floatValue / ...
3 голосов
/ 29 декабря 2011

Вам необходимо преобразовать ваши UITextField объекты в числа, с которыми вы можете выполнять арифметику.

Класс UITextField имеет свойство "text", которое содержит NSString, представляющее содержимое поля.

Так, например:

NSString *milesString = miles.text;

Чтобы преобразовать это в число с плавающей точкой:

float milesValue = [milesString floatValue]

Затем вы можете выполнить арифметику с помощью milesValue и т. Д..

Конечно, вы можете упростить назначение с помощью:

float milesValue = [miles.text floatValue]
...