2009-08-06 2 views
0

Как использовать NSTimer для обратного отсчета или это возможно? Я пробовал пару вещей и получил несколько ошибок, связанных с цифрами, но я хочу, чтобы я хотел, чтобы это произошло, когда мой таймер активируется, он начинается с 5:00 и на каждую секунду. Он убирает, я хочу, чтобы появился новый номер на моем лейбле так ....NSTimer Вопрос

если (Таймер1 == 5:00) {

// метка будет отображаться 5

}

по какой-то причине этот код дает мне ошибку для использования 5:00 .. также я не думаю, что это будет даже вызвано, потому что таймер не активирует метод до тех пор, пока время не закончится, поэтому я застрял:/любая помощь?

ответ

1

5:00 недействительный номер в C или Objective-C.

Первое, что вам захочется сделать, это прочитать введение в учебники Objective-C на developer.apple.com, а затем, скорее всего, последующую работу с какой-то книгой «программирование iPhone».

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

После того, как вы сделаете это, вы будете в состоянии понять это:

повторяющимся NSTimer не гарантируется стрелять каждые N минут/секунд/часов/дней (независимо от вашего интервал). Существует отстой; значительный отскок в зависимости от того, что происходит при срабатывании таймера.

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

Grab время начала - [NSDate date] хорошо работает - хранить его куда-нибудь, а затем использовать его, чтобы определить, сколько времени на самом деле прошло, когда срабатывает таймер (путем захвата другого [NSDate date] и вычитания первого из него, чтобы получить истекшее время).

+0

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

+0

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

0

вместо этого выполните следующие действия: вставьте следующий код там, где у хотят таймер

[NSTimer scheduledTimerWithTimeInterval: (временный интервал в секундах) цели: самостоятельно селектора: @selector (timerFired1 :) USERINFO : nil повторяет: NO];

- (Недействительными) timerFired1: (NSTimer *) таймер { // делаем вещи здесь, которые вы хотите выполнить после этого заданного временного интервала }