2012-09-21 26 views
1

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

我得到警告:“距离”的局部声明隐藏实例变量 $

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

回答

2

该警告是因为你有一个名为距离的一个局部变量也叫距离的文本字段。重命名您的本地变量并且警告消失:

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

非常感谢你:) – Sharanya

+0

但是这不能正常工作。有时候,金额没有显示任何东西。 – Sharanya

+0

这听起来像(至少)你的文本字段中的一个未被填充时调用此方法。另外,如果任何一个文本字段不包含可以解析为double的值,则转换和计算将失败。 – highlycaffeinated

1

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

我建议您重命名您的文本字段。通常将它们命名为什么通常会更好。我会称它们为distanceTextFielddistanceFieldmileageRateField

+0

非常感谢:) – Sharanya

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都没有值。

+0

非常感谢你Saini .. – Sharanya

+0

你的欢迎!! :) – TheTiger

相关问题