2011-08-06 6 views
0

두 개의 UITextField의 백분율을 계산할 때 UITextField에서 "NAN"메시지가 나타납니다. 다음과 같이 내 현재 코드는 다음과 같습니다UITextField에서 오류 메시지 받기

float firstFloat = [self.tex15.text floatValue]; 
float secondFloat = [self.tex16.text floatValue]; 
float answer = secondFloat/firstFloat * 100; 
self.tex20.text = [NSString stringWithFormat:@"%.1f%%",answer]; 
+0

firstFloat의 가치는 무엇입니까? 나는 이것이 0 인 것으로 생각한다. – taskinoor

+0

"IF"구문의 일부 형식을 사용해야하는지 궁금합니다. – TWcode

답변

0

IBOutlet 연결에 문제가 있다고 생각됩니다. 다음 코드는 나를 위해 잘 작동합니다 :

@interface testViewController : UIViewController { 
    UITextField *tf1; 
    UITextField *tf2; 
    UILabel *result; 
} 

@end 

@implementation testViewController 

- (void)dealloc{ 
    [tf1 release]; 
    [tf2 release]; 
    [result release]; 
    [super dealloc]; 
} 

-(void) click:(id) obj { 
    float firstFloat = [tf1.text floatValue]; 
    float secondFloat = [tf2.text floatValue]; 
    float answer = secondFloat/firstFloat * 100; 
    result.text = [NSString stringWithFormat:@"%.1f%%",answer]; 
} 

-(void) viewWillAppear:(BOOL)animated { 

    tf1 = [[UITextField alloc]initWithFrame:CGRectMake(10, 10, 200, 30)]; 
    tf1.backgroundColor = [UIColor whiteColor]; 

    tf2 = [[UITextField alloc]initWithFrame:CGRectMake(10, 50, 200, 30)]; 
    tf2.backgroundColor = [UIColor whiteColor]; 

    result = [[UILabel alloc]initWithFrame:CGRectMake(10, 90, 200, 30)]; 
    result.backgroundColor = [UIColor whiteColor]; 

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    btn.frame = CGRectMake(10, 130, 50, 30); 
    [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:btn]; 

    [self.view addSubview:tf1]; 
    [self.view addSubview:tf2]; 
    [self.view addSubview:result]; 

} 

@end 
1

NaN숫자가 아님을 의미한다. 귀하의 계산 결과가 유효한 숫자가 아님을 나타냅니다. 내 첫 번째 추측은 firstFloat0인데, 이는 0으로 나누려고한다는 것을 의미합니다. 차례로 self.tex15nil 인 경우 - IBOutlet이 제대로 연결되어 있는지 확인하십시오.

+0

IBOutlet이 괜찮은 것 같습니다. 이 코드는 IBAction id 보낸 사람에게 있습니다. 탭된 UITextField 내에서 +1을 추가하는 버튼 탭으로 사용됩니다. Nex는 tex15 또는 tex16을 탭하지 않으면 표시됩니다. – TWcode