2012-09-21 4 views
1

두 개의 텍스트 필드 값을 곱하고 자동으로 세 번째 아이폰에 업데이트하는 방법은 무엇입니까? 내가 경고 얻고두 개의 텍스트 필드를 곱해서 자동으로 세 번째 아이폰 업데이트

: '거리'의 지역 선언은 인스턴스 변수를 숨 깁니다 $

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

답변

2

당신이 거리는 A 지역 변수 명명 된 거리라는 텍스트 필드를 가지고 있기 때문에 경고입니다. 지역 변수의 이름을 바꾸고 경고 멀리 가야한다 :

-(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이라는 로컬 변수를 정의합니다. 그래서 경고를받는 것입니다.

텍스트 필드의 이름을 바꾸는 것이 좋습니다. 일반적으로 실제로 이름을 지정하는 것이 좋습니다. 나는 그들을 distanceTextField 또는 distanceFieldmileageRateField이라고 부를 것입니다. 경고에 대한

+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

관련 문제