Как я могу программно приостановить NSTimer?

Мое решение сравнивает объекты, а не массивы. Это будет работать так же, как Tomáš as Arrays - это объекты, но без предупреждения:

Object.prototype.compare_to = function(comparable){

    // Is the value being compared an object
    if(comparable instanceof Object){

        // Count the amount of properties in @comparable
        var count_of_comparable = 0;
        for(p in comparable) count_of_comparable++;

        // Loop through all the properties in @this
        for(property in this){

            // Decrements once for every property in @this
            count_of_comparable--;

            // Prevents an infinite loop
            if(property != "compare_to"){

                // Is the property in @comparable
                if(property in comparable){

                    // Is the property also an Object
                    if(this[property] instanceof Object){

                        // Compare the properties if yes
                        if(!(this[property].compare_to(comparable[property]))){

                            // Return false if the Object properties don't match
                            return false;
                        }
                    // Are the values unequal
                    } else if(this[property] !== comparable[property]){

                        // Return false if they are unequal
                        return false;
                    }
                } else {

                    // Return false if the property is not in the object being compared
                    return false;
                }
            }
        }
    } else {

        // Return false if the value is anything other than an object
        return false;
    }

    // Return true if their are as many properties in the comparable object as @this
    return count_of_comparable == 0;
}

Надеюсь, это поможет вам или кому-либо еще найти ответ.

42
задан Chris Hanson 8 December 2008 в 19:31
поделиться

2 ответа

Отсюда:

http://discussions.apple.com/thread.jspa?threadID=1811475&tstart=75

"Можно сохранить количество времени, которое передало начиная с запущенного таймера... Когда таймер запускается, хранят дату в переменной NSDate. Тогда, когда пользователь переключается... используют метод timeIntervalSinceNow в классе NSDate для хранения, сколько времени передало... примечание, что это даст отрицательную величину для timeIntervalSinceNow. Когда пользователь возвращает использование, которые оценивают для установки соответствующего таймера.

я не думаю, что существует способ приостановить и перезапустить таймер. Я столкнулся с аналогичной ситуацией".

22
ответ дан BobbyShaftoe 23 September 2019 в 13:41
поделиться

В моем случае у меня были переменные 'секунды' и другой 'timerIsEnabled'. Когда я хотел приостановить таймер, просто сделал timerIsEnabled как ложь. Так как переменная секунд была только увеличена, если timerIsEnabled был верен, я решил свою проблему. Надежда это помогает.

8
ответ дан 23 September 2019 в 13:41
поделиться