Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы CoreFoundation ссылка CFRunLoopTimer

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка CFRunLoopTimer

Объект CFRunLoopTimer представляет специализированный источник цикла выполнения, стреляющий в заданное время в будущее. Таймеры могут стрелять или только один раз или неоднократно в фиксированных временных интервалах. Повторение таймеров может также иметь их следующее время увольнения, вручную скорректированное.

Таймер не является механизмом в реальном времени; это стреляет только, когда один из режимов цикла выполнения, к которым был добавлен таймер, работает и способный проверить, передало ли время увольнения таймера. Если время увольнения таймера происходит, в то время как цикл выполнения находится в режиме, не контролирующем таймер или во время длинной выноски, таймер не стреляет до следующего раза цикл выполнения проверяет таймер. Поэтому фактическое время, в которое огни таймера потенциально могут быть значительным промежутком времени после запланированного времени увольнения.

Повторяющийся таймер перепланирует себя на основе запланированного времени увольнения, не фактического времени увольнения. Например, если таймер, как будут планировать, будет стрелять в определенное время и каждые 5 секунд после этого, то запланированное время увольнения будет всегда падать на исходные 5 интервалы второго раза, даже если будет задержано фактическое время увольнения. Если время увольнения задерживается до сих пор, что оно передает один или больше запланированных времен увольнения, таймер уволен только один раз за тот период времени; таймер тогда перепланируется, после увольнения, в следующий запланированный раз увольнения в будущем.

Каждый таймер цикла выполнения может быть зарегистрирован только в одном выполненном цикле за один раз, несмотря на то, что это может быть добавлено к многократным режимам цикла выполнения в том цикле выполнения.

CFRunLoopTimer “бесплатный соединенный мостом” с его дубликатом Основы Какао, NSTimer. Это означает, что Базовый тип Основы является взаимозаменяемым в вызовах функции или вызовах метода с соединенным мостом объектом Основы. Поэтому в методе, где Вы видите NSTimer * параметр, можно передать в a CFRunLoopTimerRef, и в функции, где Вы видите a CFRunLoopTimerRef параметр, можно передать в NSTimer экземпляр. Это также применяется к конкретным подклассам NSTimer. Посмотрите Бесплатные Соединенные мостом Типы для получения дополнительной информации о бесплатном образовании моста.

Функции

  • Создает новый объект CFRunLoopTimer с основанным на блоке обработчиком.

    Объявление

    Swift

    func CFRunLoopTimerCreateWithHandler(_ allocator: CFAllocator!, _ fireDate: CFAbsoluteTime, _ interval: CFTimeInterval, _ flags: CFOptionFlags, _ order: CFIndex, _ block: ((CFRunLoopTimer!) -> Void)!) -> CFRunLoopTimer!

    Objective C

    CFRunLoopTimerRef CFRunLoopTimerCreateWithHandler ( CFAllocatorRef allocator, CFAbsoluteTime fireDate, CFTimeInterval interval, CFOptionFlags flags, CFIndex order, void (^block)( CFRunLoopTimerRef timer) );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового объекта. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    fireDate

    Время, в которое должен сначала выстрелить таймер. Если существуют причины реализации сделать так, прекрасная точность (подмиллисекунда самое большее) даты огня может быть скорректирована немного таймером.

    interval

    Интервал увольнения таймера. Если 0 или отрицательный, огни таймера один раз и затем автоматически лишен законной силы. Если причины реализации сделать так существуют, прекрасная точность (подмиллисекунда самое большее) интервала может быть скорректирована немного таймером.

    flags

    В настоящее время игнорируемый. Передача 0 для будущей совместимости.

    order

    Показатель приоритета, указывающий порядок, в котором обрабатываются выполненные таймеры цикла. Выполненные таймеры цикла в настоящее время игнорируют этот параметр. Передача 0.

    block

    Когда таймер стреляет, блок вызвал. Блок берет один параметр:

    timer

    Стреляющий таймер цикла выполнения.

    Возвращаемое значение

    Новый объект CFRunLoopTimer. Владение соблюдает Создать Правило, описанное в Политике Владения.

    Обсуждение

    Таймер должен быть добавлен к режиму цикла выполнения, прежде чем он будет стрелять. Для добавления таймера к циклу выполнения использовать CFRunLoopAddTimer. Таймер может быть зарегистрирован только к одному выполненному циклу за один раз, несмотря на то, что это может быть в многократных режимах в том цикле выполнения.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Создает новый объект CFRunLoopTimer с функциональным обратным вызовом.

    Объявление

    Swift

    func CFRunLoopTimerCreate(_ allocator: CFAllocator!, _ fireDate: CFAbsoluteTime, _ interval: CFTimeInterval, _ flags: CFOptionFlags, _ order: CFIndex, _ callout: CFRunLoopTimerCallBack, _ context: UnsafeMutablePointer<CFRunLoopTimerContext>) -> CFRunLoopTimer!

    Objective C

    CFRunLoopTimerRef CFRunLoopTimerCreate ( CFAllocatorRef allocator, CFAbsoluteTime fireDate, CFTimeInterval interval, CFOptionFlags flags, CFIndex order, CFRunLoopTimerCallBack callout, CFRunLoopTimerContext *context );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового объекта. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    fireDate

    Время, в которое должен сначала выстрелить таймер. Если существуют причины реализации сделать так, прекрасная точность (подмиллисекунда самое большее) даты огня может быть скорректирована немного таймером.

    interval

    Интервал увольнения таймера. Если 0 или отрицательный, огни таймера один раз и затем автоматически лишен законной силы. Если причины реализации сделать так существуют, прекрасная точность (подмиллисекунда самое большее) интервала может быть скорректирована немного таймером.

    flags

    В настоящее время игнорируемый. Передача 0 для будущей совместимости.

    order

    Показатель приоритета, указывающий порядок, в котором обрабатываются выполненные таймеры цикла. Выполненные таймеры цикла в настоящее время игнорируют этот параметр. Передача 0.

    callout

    Функция обратного вызова, которую вызывают, когда стреляет таймер.

    context

    Структура, содержащая контекстную информацию для таймера цикла выполнения. Функция копирует информацию из структуры, таким образом, память, которой указывают context не должен сохраняться вне вызова функции. Может быть NULL если для функции обратного вызова не нужен контекст info указатель для отслеживания состояние.

    Возвращаемое значение

    Новый объект CFRunLoopTimer. Владение соблюдает Создать Правило.

    Обсуждение

    Таймер должен быть добавлен к режиму цикла выполнения, прежде чем он будет стрелять. Для добавления таймера к циклу выполнения использовать CFRunLoopAddTimer. Таймер может быть зарегистрирован только к одному выполненному циклу за один раз, несмотря на то, что это может быть в многократных режимах в том цикле выполнения.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает булево значение, указывающее, возражает ли CFRunLoopTimer повторениям.

    Объявление

    Swift

    func CFRunLoopTimerDoesRepeat(_ timer: CFRunLoopTimer!) -> Boolean

    Objective C

    Boolean CFRunLoopTimerDoesRepeat ( CFRunLoopTimerRef timer );

    Параметры

    timer

    Таймер цикла выполнения для тестирования.

    Возвращаемое значение

    true если timer повторения, или имеет периодичность; иначе false.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает контекстную информацию для объекта CFRunLoopTimer.

    Объявление

    Swift

    func CFRunLoopTimerGetContext(_ timer: CFRunLoopTimer!, _ context: UnsafeMutablePointer<CFRunLoopTimerContext>)

    Objective C

    void CFRunLoopTimerGetContext ( CFRunLoopTimerRef timer, CFRunLoopTimerContext *context );

    Параметры

    timer

    Таймер цикла выполнения для исследования.

    context

    Указатель тот, на структуру, в который контекстная информация для timer должен быть скопирован. Возвращаемой информацией является та же информация, переданная CFRunLoopTimerCreate при создании timer.

    Обсуждение

    Номер версии контекста для выполненных таймеров цикла в настоящее время 0. Прежде, чем вызвать эту функцию, необходимо инициализировать version элемент context к 0.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает интервал увольнения повторяющегося объекта CFRunLoopTimer.

    Объявление

    Swift

    func CFRunLoopTimerGetInterval(_ timer: CFRunLoopTimer!) -> CFTimeInterval

    Objective C

    CFTimeInterval CFRunLoopTimerGetInterval ( CFRunLoopTimerRef timer );

    Параметры

    timer

    Таймер цикла выполнения для исследования.

    Возвращаемое значение

    Интервал увольнения timer. Возвраты 0 если timer не повторяется.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращается в следующий раз увольнения для объекта CFRunLoopTimer.

    Объявление

    Swift

    func CFRunLoopTimerGetNextFireDate(_ timer: CFRunLoopTimer!) -> CFAbsoluteTime

    Objective C

    CFAbsoluteTime CFRunLoopTimerGetNextFireDate ( CFRunLoopTimerRef timer );

    Параметры

    timer

    Таймер цикла выполнения для исследования.

    Возвращаемое значение

    В следующий раз увольнения для timer. Это время могло быть датой в прошлом, если цикл выполнения не был в состоянии обработать таймер, так как наступило время увольнения.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает параметр упорядочивания для объекта CFRunLoopTimer.

    Объявление

    Swift

    func CFRunLoopTimerGetOrder(_ timer: CFRunLoopTimer!) -> CFIndex

    Objective C

    CFIndex CFRunLoopTimerGetOrder ( CFRunLoopTimerRef timer );

    Параметры

    timer

    Таймер цикла выполнения для исследования.

    Возвращаемое значение

    Параметр упорядочивания для timer.

    Обсуждение

    Параметр упорядочивания в настоящее время игнорируется выполненными таймерами цикла.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает идентификатор типа CFRunLoopTimer непрозрачный тип.

    Объявление

    Swift

    func CFRunLoopTimerGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFRunLoopTimerGetTypeID ( void );

    Возвращаемое значение

    Идентификатор типа для CFRunLoopTimer непрозрачный тип.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Лишает законной силы объект CFRunLoopTimer, останавливая его от когда-либо увольнения снова.

    Объявление

    Swift

    func CFRunLoopTimerInvalidate(_ timer: CFRunLoopTimer!)

    Objective C

    void CFRunLoopTimerInvalidate ( CFRunLoopTimerRef timer );

    Параметры

    timer

    Таймер цикла выполнения для лишения законной силы.

    Обсуждение

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

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает булево значение, указывающее, допустим ли объект CFRunLoopTimer и в состоянии стрелять.

    Объявление

    Swift

    func CFRunLoopTimerIsValid(_ timer: CFRunLoopTimer!) -> Boolean

    Objective C

    Boolean CFRunLoopTimerIsValid ( CFRunLoopTimerRef timer );

    Параметры

    timer

    Таймер цикла выполнения для исследования.

    Возвращаемое значение

    true если timer допустимо; иначе false.

    Обсуждение

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

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Назначает следующую дату увольнения для объекта CFRunLoopTimer.

    Объявление

    Swift

    func CFRunLoopTimerSetNextFireDate(_ timer: CFRunLoopTimer!, _ fireDate: CFAbsoluteTime)

    Objective C

    void CFRunLoopTimerSetNextFireDate ( CFRunLoopTimerRef timer, CFAbsoluteTime fireDate );

    Параметры

    timer

    Таймер цикла выполнения для изменения.

    fireDate

    Новое время увольнения для timer.

    Обсуждение

    Сброс следующего времени увольнения таймера является относительно дорогой работой и не должен быть сделан, если его можно избежать; разрешение автоповтору таймеров более эффективно. В некоторых случаях, однако, вручную скорректированные, повторяющиеся таймеры полезны. Например, если у Вас есть действие, которое будет выполняться многократно в будущем, но в неправильных временных интервалах, было бы очень дорого создать, добавьте к выполненным режимам цикла, и затем уничтожьте таймер для каждого события увольнения. Вместо этого можно создать повторяющийся таймер с начальным временем увольнения в далеком будущем (или начальным временем увольнения) и очень большой повторный интервал — на порядке десятилетий или более — и добавить его ко всем необходимым режимам цикла выполнения. Затем когда Вы знаете, когда таймер должен стрелять затем, Вы сбрасываете время увольнения с CFRunLoopTimerSetNextFireDate, возможно, от собственной функции обратного вызова таймера. Этот метод эффективно производит допускающий повторное использование, асинхронный таймер.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Обратные вызовы

  • Когда CFRunLoopTimer возражает огням, обратный вызов вызвал.

    Объявление

    Swift

    typealias CFRunLoopTimerCallBack = CFunctionPointer<((CFRunLoopTimer!, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFRunLoopTimerCallBack) ( CFRunLoopTimerRef timer, void *info );

    Параметры

    timer

    Стреляющий таймер цикла выполнения.

    info

    info элемент CFRunLoopTimerContext структура, использовавшаяся при создании таймера цикла выполнения.

    Обсуждение

    Если timer повторения, цикл выполнения автоматически планирует в следующий раз увольнения после вызывания этой функции, если Вы вручную не обновите время увольнения в этом обратном вызове путем вызова CFRunLoopTimerSetNextFireDate. Если timer не повторяется, цикл выполнения лишает законной силы timer.

    Вы указываете этот обратный вызов при создании таймера с CFRunLoopTimerCreate.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Типы данных

Прочие условия

  • Структура, содержащая определенные с помощью программы данные и обратные вызовы, с которыми можно сконфигурировать поведение CFRunLoopTimer.

    Объявление

    Swift

    struct CFRunLoopTimerContext { var version: CFIndex var info: UnsafeMutablePointer<Void> var retain: CFunctionPointer<((UnsafePointer<Void>) -> UnsafePointer<Void>)> var release: CFunctionPointer<((UnsafePointer<Void>) -> Void)> var copyDescription: CFunctionPointer<((UnsafePointer<Void>) -> Unmanaged<CFString>!)> }

    Objective C

    struct CFRunLoopTimerContext { CFIndex version; void *info; CFAllocatorRetainCallBack retain; CFAllocatorReleaseCallBack release; CFAllocatorCopyDescriptionCallBack copyDescription; }; typedef struct CFRunLoopTimerContext CFRunLoopTimerContext;

    Поля

    version

    Номер версии структуры. Должен быть 0.

    info

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

    retain

    Сохранить обратный вызов для Вашего определенного с помощью программы info указатель. Может быть NULL.

    release

    Обратный вызов выпуска для Вашего определенного с помощью программы info указатель. Может быть NULL.

    copyDescription

    Обратный вызов описания копии для Вашего определенного с помощью программы info указатель. Может быть NULL.

    Доступность

    Доступный в OS X v10.0 и позже.

  • Ссылка на объект таймера цикла выполнения.

    Объявление

    Swift

    typealias CFRunLoopTimerRef = CFRunLoopTimer

    Objective C

    typedef struct __CFRunLoopTimer *CFRunLoopTimerRef;

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.