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 有警告标志。问题是线程点最终会断裂。这有什么问题?

编辑:

@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

3 回答 3

5

局部声明隐藏实例变量

第一个错误是因为您有一个成员变量声明为

float result;

然后在您的方法中,您有一个声明为相同的局部变量。因此,局部变量掩盖了成员变量。您应该确保名称不会发生冲突。

实施不完整

第二个错误是因为您在标题中声明了一个方法

-(IBAction)ReturnKeyButton:(id)sender

但是然后你实现

-(IBAction)ReturnKeyButton;

这是两种完全不同的方法,一种被称为ReturnKeyButton另一种被称为ReturnKeyButton:注意名称末尾的冒号。

要解决此问题,只需确保声明匹配,例如更改

-(IBAction)ReturnKeyButton;-(IBAction)ReturnKeyButton:(id)sender实施中

于 2013-03-11T13:16:02.610 回答
1

您的问题包含两条警告消息:

1.“ ”的局部声明隐藏实例

你有一个 ivar 的属性和一个同名的方法。

例如,在您的班级中,您有一个名为的属性myProperty,并且在您创建的方法中myProperty

一种方法是为方法的变量使用不同的名称。或在合成中使用别名覆盖您的属性作为@synthesize myProperty=_myProperty;.

# 你float result在课堂上和你的方法中都有。Operation1:在方法和方法中将结果更改为 tempResult 或任何其他变量名称Operation2:

如果您使用的是 XCode 4.4+,那么编译器会将 synthesize属性与_.

2. 执行不完整——需要新鲜

您尚未实现在 .h 文件中声明的所有方法。

# 你还没有-(IBAction)ReturnKeyButton;在你的 .m 文件中实现

您在那里创建了一个本地方法-(IBAction)ReturnKeyButton:

于 2013-03-11T13:02:12.013 回答
0

可能是您没有使用 self 调用变量。

尝试像这样打电话

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

希望这可以帮助 !!!

于 2013-03-11T13:01:07.980 回答