в течение 1 секунды: объективная помощь при кодировании - PullRequest
0 голосов
/ 04 июля 2010

Возможно ли сделать что-то подобное?

if (myVariable == 100 for more than 1 second) {
}

Так что, если myVariable равен 100 в течение более 1 секунды, сделайте что-нибудь.Илия

Ответы [ 3 ]

2 голосов
/ 04 июля 2010

Вы можете сохранить время, когда вы установите myVariable в новое значение (легко, если вы используете метод setter для этого повсеместно).Затем запустите таймер, который срабатывает через секунду, и проверьте, не изменили ли вы значение в это время.

Хотя это необычный шаблон, и, вероятно, есть лучшие способы сделать то, что вы пытаетесь выполнить.

1 голос
/ 04 июля 2010

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

0 голосов
/ 04 июля 2010

Вы можете запустить NSTimer из тела оператора if () с таймером 1 секунда. Так что-то вроде

if(myVariable >= 100 && myTimer == nil){
    //NSTimer code here
}else if(myVariable < 100 && myTimer !=nil){
    //Invalidate timer
    //Set myTimer to nil
}

Если у вас есть таймер для вызова метода, который затем делает то, что вы хотите.

Это должно сработать, но я не могу помочь, но чувствую, что есть лучшее решение для реальной проблемы, которую вы пытаетесь решить.

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