1

如何将两个文本字段浮点值相乘并在 iphone 的第三个值中自动更新?

我收到警告:“距离”的本地声明隐藏了实例变量 $

-(void)textFieldDidEndEditing:(UITextField *)textField{
    double distance = [self.distance.text doubleValue];
    double mileage = [self.mileagerate.text doubleValue];
     amount.text =  [NSString stringWithFormat:@"%.2f",distance * mileage];
}
4

3 回答 3

2

警告是因为您有一个名为 distance 的文本字段和一个名为 distance 的局部变量。重命名您的局部变量,警告应该消失:

-(void)textFieldDidEndEditing:(UITextField *)textField{
    double dist = [self.distance.text doubleValue];
    double mileage = [self.mileagerate.text doubleValue];
     amount.text =  [NSString stringWithFormat:@"%.2f",dist * mileage];
}
于 2012-09-21T14:47:28.517 回答
1

您有一个名为distance. distance您还定义了一个在该方法中调用的局部变量。这就是你收到警告的原因。

我建议您重命名文本字段。通常最好将它们命名为实际名称。我会打电话给他们distanceTextFieldor distanceFieldand mileageRateField

于 2012-09-21T14:49:10.193 回答
1

关于警告 -

self.distance //Global Variable
double distance //local variable

这两个变量具有相同的名称,这就是您收到警告的原因,否则您的方法可以。

return button您可以通过更改变量名称来计算它以删除警告...

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
     double distance_local = [self.distance.text doubleValue];
     double mileage = [self.mileagerate.text doubleValue];
     double result = distance_local * mileage;
     amount.text =  [NSString stringWithFormat:@"%.2f",result];
     [textField resignFirstResponder]; 
     return YES;
}

你也可以计算它

-(void)textFieldDidEndEditing:(UITextField *)textField

方法,但在每种方法中,您都必须检查两者textFields的值是否为 not。

于 2012-09-21T14:50:06.850 回答