将两个文本字段相乘并自动更新iphone中的第三个字段

时间:2012-09-21 14:44:37

标签: iphone objective-c uitextfield

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

我收到警告:'distance'的本地声明隐藏了实例变量 $

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

3 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:1)

您有一个名为distance的实例变量。您还可以在该方法中定义名为distance的局部变量。这就是你收到警告的原因。

我建议您重命名文本字段。通常最好将它们命名为它们。我会称他们为distanceTextFielddistanceFieldmileageRateField

答案 2 :(得分: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的值是否为。