Если оператор IF работает нормально на симуляторе, но не на устройстве! - PullRequest
0 голосов
/ 10 ноября 2009

Хорошо, проблема в том, что когда мое приложение работает на симуляторе, оно, кажется, работает нормально. На устройстве, однако, он не обновляет все метки. Я думаю, что ошибка где-то здесь:

- (IBAction)buttonclick1 {  

     self.startDate = [NSDate date];  
     double value = [self Level];  
     double value2 = [self Level2];  


if ((value2 - value) >= 3.0) {

    ifWork.text = @"DONE!";
    ifWork.textColor = [UIColor yellowColor];

    float noSeconds = (float) [self.startDate timeIntervalSinceNow]; 
  }
}

Я новичок в этой игре. То, что я ищу, это то, когда кнопка нажата, и сколько времени требуется для того, чтобы событие произошло. Затем я хотел бы использовать это время в расчетах.

Я знаю, что оператор IF корректен, поскольку он работает на симуляторе. Однако на устройстве, когда значение и значение2 отличаются на 3, а затем нажимается кнопка, ничего не происходит (метка ifWork не изменяется!).

Любая помощь будет высоко ценится,

Stu

Ответы [ 2 ]

2 голосов
/ 10 ноября 2009

Вы запускали код в отладчике, чтобы увидеть, что происходит? Возможно, если значения зависят от чего-либо, например, производительности ЦП или сети, у вас могут возникнуть заметные различия между симулятором и реальным устройством, поэтому вы не можете быть уверены, что то, что работает на симуляторе, работает на устройстве.

1 голос
/ 11 ноября 2009

Может быть несколько причин.

  • Результаты Level1 или Level2 могут отличаться на устройстве (при использовании неинициализированной памяти, которая отличается на устройстве
  • значение2 - значение1 может быть очень близко к 3,0, но чуть меньше (двойные значения часто немного неточны)
  • ifWork может быть неправильно установлен на устройстве (т. Е. Ноль), поэтому ничего не происходит.

Лучшее решение - отладка на устройстве (перебирайте этот код строка за строкой) и проверка, является ли какая-либо из этих вещей верной.

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