iOS. Приемы программирования
Шрифт:
• scheduledTimerWithTimeInterval — количество секунд, в течение которого таймер должен ожидать, прежде чем запустит то или иное событие. Например, если вы хотите, чтобы таймер вызывал метод в своем целевом объекте дважды в секунду, то для этого параметра нужно установить значение 0.5 (1 секунда, деленная на 2). Если вы желаете, чтобы целевой метод вызывался четыре раза в секунду, то этот параметр должен иметь значение 0.25 (1 секунда, деленная на 4);
• target — объект, который будет получать событие;
• selector — сигнатура метода в том целевом объекте, который будет получать событие;
• userInfo — объект, который будет содержаться в таймере для дальнейшего пользования (в целевом методе целевого объекта);
• repeats —
Как только таймер создан и добавлен к рабочему циклу, можно остановиться и высвободить этот таймер, воспользовавшись методом экземпляра invalidate, относящимся к классу NSTimer. Таким образом будет высвобожден не только таймер, но и объект (если имеется объект, который передан таймеру и который требуется сохранять на протяжении всего жизненного цикла таймера; например, объект может быть сообщен параметру userInfo метода класса scheduledTimerWithTimeInterval: target: selector: userInfo: repeats:, относящемуся к классу NSTimer). Если передать параметру repeats значение NO, то таймер самоуничтожится после первого прохода цикла и высвободит любой удерживаемый объект (при его наличии).
Есть и другие методы, с помощью которых можно создать запланированный таймер. Один из них — метод класса scheduledTimerWithTimeInterval: invocation: repeats:, относящийся к классу NSTimer:
Планирование
Методы класса currentRunLoop и mainRunLoop, относящиеся к классу NSRunLoop, возвращают соответственно актуальный и главный рабочие циклы конкретного приложения, что понятно из их названий [7] .
Можно создавать запланированные таймеры с применением активизации, воспользовавшись вариантом с методом scheduledTimerWithTimeInterval: invocation: repeats:. С тем же успехом можно пользоваться методом класса timerWithTimeInterval: invocation: repeats:, относящимся к классу NSTimer, чтобы создать незапланированный таймер — также с применением активизации:
7
Main (англ.) — «главный», run (англ.) — «рабочий», loop (англ.) — «цикл». — Примеч. пер.
Черный лебедь. Тетралогия
Черный Лебедь
Фантастика:
фэнтези
ужасы и мистика
детективная фантастика
рейтинг книги
Царь Гильгамеш (сборник)
ELITE SERIES
Фантастика:
научная фантастика
альтернативная история
рейтинг книги
Когда физики в цене
Документальная литература:
биографии и мемуары
рейтинг книги
Рэдволл
1. Рэдволл
Детские:
сказки
рейтинг книги
Системный разведчик. Инфильтрация. Дилогия
Системный разведчик
Фантастика:
боевая фантастика
рпг
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Первый среди равных. Книга II
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Самоубийство
Проза:
историческая проза
рейтинг книги
Шекспир
Всемирная история в романах
Проза:
историческая проза
рейтинг книги
Розы от киллера
Любовные романы:
остросюжетные любовные романы
рейтинг книги
Дневник (1887-1910)
Проза:
проза прочее
рейтинг книги