Получение сообщения об ошибке в пределах UITextField - PullRequest
0 голосов
/ 06 августа 2011

Я получаю сообщение «NAN» в пределах UITextField, когда я пытаюсь вычислить процент двух UITextFields. Мой текущий код выглядит следующим образом:

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

Ответы [ 2 ]

1 голос
/ 06 августа 2011

NaN означает Не число . Это означает, что ваш расчет не приводит к действительному числу. Моим первым предположением будет то, что firstFloat равно 0, что означает, что вы пытаетесь разделить на ноль. В свою очередь это может быть вызвано тем, что self.tex15 является nil - проверьте, правильно ли подключен ваш IBOutlet.

0 голосов
/ 06 августа 2011

Я сильно подозреваю, что это проблема с вашими соединениями 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
...