2012-02-13 2 views
0

Я пытаюсь получить приложение калькулятора, которое я создал, чтобы вызвать простой код, если он обнаружил, что я нажал кнопку десятичной точки (чтобы разрешить только одну десятичную точку на значение). Однако по какой-то причине эти утверждения if относительно цифры не срабатывают. Я NSLogged его вывод, и он действительно отображается как "." поэтому я не могу понять, почему. Я изменил. к любому другому значению тоже ничего, кажется, не запускает их.Если инструкция чтения currentTitle отправителя UIButton не работает

NSString *digit = [sender currentTitle]; 
if (self.userIsInTheMiddleOfEnteringANumber) { 
    self.display.text = [[[self display] text] stringByAppendingString:digit]; // All in one line! 
    NSLog(@"Digit is equal to %@",digit); 
    if (digit == @".") NSLog(@"That was a decimal point!"); 
} else { 
    self.display.text = digit; 
    if (digit == @".") NSLog(@"You can't begin a number with a decimal!"); 
    self.userIsInTheMiddleOfEnteringANumber = YES; // If they aren't typing, now they are! 
} 

ответ

0

Не сравнивайте строки с ==. Используйте isEqualToString:

if ([digit isEqualToString:@"."]) 

== проверяет указатель равенства, а не строка равенства.

+0

Отлично, большое спасибо! – Luke

0

== не работает:

if (digit == @".") 

Для использования строки:

if([digit isEqualToString:@".") 
Смежные вопросы