1

2つのテキストフィールドのfloat値を乗算し、iphoneの3番目の値で自動的に更新するにはどうすればよいですか?

警告が表示されます:'distance'のローカル宣言はインスタンス変数を非表示にします$

-(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

というインスタンス変数がありますdistancedistanceまた、そのメソッドで呼び出されるローカル変数も定義します。そのため、警告が表示されます。

テキスト フィールドの名前を変更することをお勧めします。通常は、実際に名前を付ける方が適切です。私はそれらをdistanceTextFieldまたはdistanceFieldと呼びます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 に答える