Код Obj C не работает, правильно оценивает метод? - PullRequest
0 голосов
/ 20 ноября 2011

Я пытаюсь сделать приложение, чтобы преобразовать десятичное число в двоичное число, но когда я ввожу десятичное число в текстовое поле и у меня есть кнопка, вызывающая метод binaryConvert, он постоянно возвращает 111111111111111111 (1 для каждой оценки).Почему этот ответ

- (NSString*)binaryConvert:(int)decNum {

    int i = 1;
    int value = 524288;
    NSString * binary = @".";

    while (i <= 19) {
        if ((decNum/value) >= 1) {
            binary = [binary stringByAppendingString:@"1"];
            decNum -= value;
        }   else {
            binary = [binary stringByAppendingString:@"0"];
        }
        value /= 2;
        i++;
    }
    return binary;
}

- (IBAction)convertToBinary:(id)sender {

    int decNum = (int)textField.text;
    if ([textField.text length] > 6) {
        answer.text = @"Too many numbers entered.";
    }   else {
        answer.text = [self binaryConvert:decNum];
    }
    [textField resignFirstResponder];
}

является меткой.

1 Ответ

2 голосов
/ 20 ноября 2011

int decNum = (int) textField.text;// НЕПРАВИЛЬНО

Должно быть:

int decNum = [textField.text intValue];

// мой предыдущий неправильный ответ:

// decNum - = значение должно выполняться каждый раз;не только если ((decNum / value)> = 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...