2013-03-11 3 views
0
@implementation ViewController 

-(IBAction)ReturnKeyButton:(id)sender { 
    [sender resignFirstResponder]; 
} 

@synthesize torque, horsepower, rpm, rpmf2; 

-(IBAction)Operation1:(id)sender { 
    float result = 2 * 3.14 *([torque.text floatValue] * [rpm.text floatValue])/33000; 

    answer1.text = [[NSString alloc] initWithFormat:@"%2.f", result]; 
} 

-(IBAction)Operation2:(id)sender { 
    float result = 2 * 3.14 * ([horsepower.text floatValue] * [rpmf2.text floatValue])/ 33000; 

    answer2.text = [[NSString alloc] initWithFormat:@"%2.f", result]; 
} 

Я хочу отформатировать текстовое поле на число. Это работает, но у него есть предостерегающие знаки над моей имплантацией answer1.text и answer2.text. Проблема в том, что точка потока в конечном итоге сломается. Что не так с этим?Локальная декларация «" скрывает экземпляр и неполную реализацию

EDIT:

@interface ViewController : UIViewController { 
     float result; 
     IBOutlet UILabel *answer1; 
     IBOutlet UILabel *answer2; 
     IBOutlet UITextField *torque; 
     IBOutlet UITextField *rpm; 
     IBOutlet UITextField *horsepower; 
     IBOutlet UITextField *rpmf2; 
     int currentOperation1; 
     float torque1; 
     float rpm1; 
     float horsepower1; 
     float rpm1f2; 
     float answer5; 
    } 

    -(IBAction)Operation1:(id)sender; 
    -(IBAction)Operation2:(id)sender; 
    @property(nonatomic, retain) IBOutlet UITextField *torque; 
    @property(nonatomic, retain) IBOutlet UITextField *rpm; 
    @property(nonatomic, retain) IBOutlet UITextField *horsepower; 
    @property(nonatomic, retain) IBOutlet UITextField *rpmf2; 
    -(IBAction)ReturnKeyButton; 
@end 
+4

И нам нужны все ваши объявления переменных. – CodaFi

+0

Что говорят предупреждения? – 2013-03-11 12:54:50

ответ

5

Местная Декларация Скрывает Instance Variable

Первая ошибка, потому что у вас есть переменная-член объявлено как

float result; 

, а затем в ваших методах у вас есть местный variabl e объявлено как одно и то же. Поэтому локальная переменная маскирует переменную-член. Вы должны убедиться, что имена не сталкиваются.

Неполная реализация

Вторая ошибка в том, что у вас есть метод, объявленный как в вашем заголовке

-(IBAction)ReturnKeyButton:(id)sender 

но тогда вы реализуете

-(IBAction)ReturnKeyButton; 

Это две совершенно разные методы один ReturnKeyButton, а другой называется ReturnKeyButton:, обратите внимание на двоеточие в конце имени.

Чтобы исправить это, убедитесь, что объявления совпадают, например. изменить

-(IBAction)ReturnKeyButton; к -(IBAction)ReturnKeyButton:(id)sender в реализации

+0

Большое вам спасибо. Я работаю над этим для школы, и это мое истинное кодирование. Я смотрел на это часами, пытаясь подумать о том, что я сделал не так. С полным благодарностью! –

0

Может быть, вы не вызывая переменные, используя себя.

попробовать вызвать как этот

self.torque.text, self.horsepower.text, self.rpm.text, self.rpmf2.text

Надеется, что это помогает !!!

+0

Это не учитывает предупреждения пользователя видит и ваше предложение не должно иметь никакого эффекта, так как OP в настоящее время только захватывая Ивар непосредственно без прохождения через аксессор - который должен работать нормально –

1

Ваш вопрос содержит два Предупреждающие сообщения:

1. Локальная декларация «» скрывает экземпляр

У вас есть свойство Ивар и метод, имеющий такое же имя.

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

Один из способов использования другого имени для переменной вашего метода. или в синтезе переопределяют ваше свойство с псевдонимом как @synthesize myProperty=_myProperty;.

# У вас есть float result в классе, а также в ваших методах. Изменить результат для tempResult или любого другого имени переменной в обоих методах Operation1: и Operation2:

Если вы используете XCode, 4.4 и выше, то компилятор synthesize сек свойства с _.

2. Неполная реализация - нужно свежий

Вы не реализовали все методы, которые вы объявленные в ваших заголовочных файлах.

# Вы не выполнили -(IBAction)ReturnKeyButton; в файле .m

Вы создали локальный метод там -(IBAction)ReturnKeyButton:

+0

@interface ViewController: UIViewController { результат поплавка; IBOutlet UILabel * answer1; IBOutlet UILabel * reply2; IBOutlet UITextField * крутящий момент; IBOutlet UITextField * об/мин; IBOutlet UITextField * мощность; IBOutlet UITextField * rpmf2; int currentOperation1; float torque1; float rpm1; float horsepower1; float rpm1f2; float answer5; } Что я пропускаю? –

+0

- (IBAction) Operation1: (id) отправитель; - (IBAction) Operation2: (id) отправитель; @property (неатомный, сохраняемый) IBOutlet UITextField * крутящий момент; @property (неатомный, сохраняемый) IBOutlet UITextField * rpm; @property (неатомный, сохраняемый) IBOutlet UITextField * мощность; @property (неатомный, сохраняемый) IBOutlet UITextField * rpmf2; - (IBAction) ReturnKeyButton; @end –

+0

Какую реализацию мне не хватает? Это все в моем файле .h. –

Смежные вопросы