UITextView для расчета не работает - PullRequest
4 голосов
/ 16 августа 2011

Рассмотрим следующий код:

Вот мой заголовочный файл контроллера калькулятора цен.

#import <Foundation/Foundation.h>
#import "PriceCalculator.h"

@interface PriceCalculatorController : UITextField {

    IBOutlet UITextField *mpgField;
    IBOutlet UITextField *milesField;
    IBOutlet UITextField *priceField;
    IBOutlet UITextField *ridersField;
    IBOutlet UITextField *splitField;

    PriceCalculator *calculator;
}


-(IBAction)calculator:(id)sender;

@end

Вот файл его реализации:

#import "PriceCalculatorController.h"

@implementation PriceCalculatorController


- (IBAction)calculator:(id)sender {

    float split;

    calculator = [[PriceCalculator alloc]init];


    [calculator setMpg:[mpgField float]];
    [calculator setRiders: [ridersField float]];
    [calculator setMiles: [milesField float]];
    [calculator setPrice: [priceField float]];


    split = [calculator CalculateSplit];

    [splitField setFloatValue:split];
}
@end

Это дает мне ошибку:

receiver type 'UITextField' for instance message does not
declare a method with selector 'float' [4]

Что происходит?

Ответы [ 5 ]

2 голосов
/ 16 августа 2011
1 голос
/ 16 августа 2011

Вы используете неправильный код
изменить метод, как это

    [calculator setMpg:[mpgField floatValue]];
    [calculator setRiders: [ridersField floatValue]];
    [calculator setMiles: [milesField floatValue]];
    [calculator setPrice: [priceField floatValue]];
1 голос
/ 16 августа 2011
#import "PriceCalculatorController.h"

@implementation PriceCalculatorController


- (IBAction)calculator:(id)sender {

    float split;

    calculator = [[PriceCalculator alloc]init];


    [calculator setMpg:[mpgField.text floatValue]];
    [calculator setRiders: [ridersField.text floatValue]];
    [calculator setMiles: [milesField.text floatValue]];
    [calculator setPrice: [priceField.text floatValue]];


    split = [calculator CalculateSplit];

    [splitField setFloatValue:split];
}
@end
1 голос
/ 16 августа 2011

Вы пытаетесь вызвать метод float для каждого из ваших полей, и нет никакого метода float

Возможно, вы имели в виду что-то вроде [mpgField.text floatValue];.

0 голосов
/ 16 августа 2011

Для начала вам нужно определить все ваши IBOulets как @property (nonretain, atomic) ... и затем синтезировать их.

Затем вам нужно будет позвонить

[[текст поля] floatValue]

на полях.


EDIT:

Вот код, который вы хотите:

[calculator setMpg:[[mpgField text] floatValue]];
[calculator setRiders: [[ridersField text] floatValue]];
[calculator setMiles: [[milesField text] floatValue]];
[calculator setPrice: [[priceField text] floatValue]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...