#iphone #nstimer
#iPhone #nstimer
Вопрос:
Я только что заметил, что моя функция обратного вызова таймера перестает срабатывать, когда экран iPhone блокируется. Есть ли способ сообщить iPhone, чтобы он не отключал мой таймер? Есть ли другой способ периодически выполнять какие-либо действия, когда iPhone заблокирован?
Я использую NSTimer из viewDidLoad, чтобы запланировать функцию обратного вызова таймера каждую секунду.
[NSTimer scheduledTimerWithTimeInterval: 1.0 target: selef selector: @selector(levelTimerCallback) userInfo: повторений нет: ДА];
Спасибо.
Комментарии:
1. @Radek S ты ошибаешься. Это может быть обратный вызов levelTimerCallback
2. @Максимальная документация . В нем говорится: «Сообщение, которое нужно отправить цели при срабатывании таймера. Селектор должен иметь следующую подпись:
- (void)timerFireMethod:(NSTimer*)theTimer
»3. @Radek S Так и должно быть, если вы хотите получить вызывающего абонента (таймер). Но если параметра нет, он просто пропускается. Если вы не верите — просто протестируйте это. Это работает нормально
4. Я поддержу то, что работает нормально. Я тоже это пробовал.
5. @Radek S вы путаете SDK и основы языка программирования. Обмен сообщениями является основой Objective C (и он абсолютно независим от Cocoa), и почти наверняка его правила не будут изменены в будущем.
Ответ №1:
Вы уверены, что он не запускается при блокировке? Я только что попробовал это, поместил это scheduleTimerWithTimeInterval в метод didFinishLaunching делегата приложения, заблокировал экран в симуляторе и все еще получаю обратные вызовы.
Комментарии:
1. Странно ….! Теперь он работает ..!!! Я уверен, что раньше это не работало, но теперь я не могу воспроизвести сценарий. Это не работало, и, следовательно, я боролся с настройкой application.idleTimerDisabled = TRUE; который сработал для меня. Но теперь функция обратного вызова таймера вызывается, когда экран заблокирован. Абсолютно загадочно для меня ..!!