Ссылка CFRunLoopObserver
CFRunLoopObserver предоставляет генералу средние значения для получения обратных вызовов в различных точках в выполнении выполненный цикл. В отличие от источников, стреляющих, когда асинхронное событие имеет место, и таймеры, стреляющие, когда определенное время передает, наблюдатели стреляют в специальные расположения в выполнении цикла выполнения, такой как, прежде чем источники будут обработаны или прежде чем цикл выполнения заснет, ожидая события для появления. Наблюдатели могут быть или разовыми событиями или повторились каждый раз через цикл цикла выполнения.
Каждый наблюдатель цикла выполнения может быть зарегистрирован только в одном выполненном цикле за один раз, несмотря на то, что он может быть добавлен к многократным режимам цикла выполнения в том цикле выполнения.
-
Создает объект CFRunLoopObserver с основанным на блоке обработчиком.
Объявление
Swift
func CFRunLoopObserverCreateWithHandler(_allocator: CFAllocator!, _activities: CFOptionFlags, _repeats: Boolean, _order: CFIndex, _block: ((CFRunLoopObserver!, CFRunLoopActivity) -> Void)!) -> CFRunLoopObserver!Objective C
CFRunLoopObserverRef CFRunLoopObserverCreateWithHandler ( CFAllocatorRef allocator, CFOptionFlags activities, Boolean repeats, CFIndex order, void (^block)( CFRunLoopObserverRef observer, CFRunLoopActivity activity) );Параметры
allocatorСредство выделения для использования для выделения памяти для нового объекта. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.activitiesНабор флагов, идентифицирующих этапы действия цикла выполнения, во время которого вызывают наблюдателя. Посмотрите Цикл Выполнения Activitiesfor список этапов. Чтобы зайти в наблюдателя многократные этапы в цикле выполнения, объедините значения Действий Цикла Выполнения с помощью оператора битового «ИЛИ».
repeatsИдентификация флага, вызывают ли наблюдателя только один раз или каждый раз через цикл выполнения. Если
repeatsfalse, наблюдатель лишен законной силы после того, как это вызывают один раз, даже если наблюдателя, как планировали, вызовут на многократных этапах в цикле выполнения.orderПоказатель приоритета, указывающий порядок, в котором обрабатываются выполненные наблюдатели цикла. Когда многократные наблюдатели цикла выполнения планируются на том же этапе действия в данном выполненном режиме цикла, наблюдатели обрабатываются в увеличивающемся порядке этого параметра. Передайте 0, если нет причина сделать иначе.
blockКогда наблюдатель работает, блок вызвал. Блок берет два параметра:
observerСтреляющий наблюдатель цикла выполнения.
activityТекущий этап действия цикла выполнения.
Возвращаемое значение
Новый объект CFRunLoopObserver. Владение соблюдает Создать Правило, описанное в Политике Владения.
Обсуждение
Наблюдатель цикла выполнения автоматически не добавляется к циклу выполнения. Для добавления наблюдателя к циклу выполнения использовать
CFRunLoopAddObserver. Наблюдатель может быть зарегистрирован только к одному выполненному циклу, несмотря на то, что он может быть добавлен к многократным режимам цикла выполнения в том цикле выполнения.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Создает объект CFRunLoopObserver с функциональным обратным вызовом.
Объявление
Swift
func CFRunLoopObserverCreate(_allocator: CFAllocator!, _activities: CFOptionFlags, _repeats: Boolean, _order: CFIndex, _callout: CFRunLoopObserverCallBack, _context: UnsafeMutablePointer<CFRunLoopObserverContext>) -> CFRunLoopObserver!Objective C
CFRunLoopObserverRef CFRunLoopObserverCreate ( CFAllocatorRef allocator, CFOptionFlags activities, Boolean repeats, CFIndex order, CFRunLoopObserverCallBack callout, CFRunLoopObserverContext *context );Параметры
allocatorСредство выделения для использования для выделения памяти для нового объекта. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.activitiesНабор флагов, идентифицирующих этапы действия цикла выполнения, во время которого нужно вызвать наблюдателя. Посмотрите Цикл Выполнения Activitiesfor список этапов. Чтобы зайти в наблюдателя многократные этапы в цикле выполнения, объедините значения Действий Цикла Выполнения с помощью оператора битового «ИЛИ».
repeatsИдентификация флага, нужно ли наблюдателя вызвать только один раз или каждый раз через цикл выполнения. Если
repeatsfalse, наблюдатель лишен законной силы после того, как это вызывают один раз, даже если наблюдателя, как планировали, вызовут на многократных этапах в цикле выполнения.orderПоказатель приоритета, указывающий порядок, в котором обрабатываются выполненные наблюдатели цикла. Когда многократные наблюдатели цикла выполнения планируются на том же этапе действия в данном выполненном режиме цикла, наблюдатели обрабатываются в увеличивающемся порядке этого параметра. Передайте 0, если нет причина сделать иначе.
calloutКогда наблюдатель работает, функция обратного вызова вызвала.
contextСтруктура, содержащая контекстную информацию для наблюдателя цикла выполнения. Функция копирует информацию из структуры, таким образом, память, которой указывают
contextне должен сохраняться вне вызова функции. Может бытьNULLесли наблюдателю не нужен контекстinfoуказатель для отслеживания состояние.Возвращаемое значение
Новый объект CFRunLoopObserver. Владение соблюдает Создать Правило, описанное в Политике Владения.
Обсуждение
Наблюдатель цикла выполнения автоматически не добавляется к циклу выполнения. Для добавления наблюдателя к циклу выполнения использовать
CFRunLoopAddObserver. Наблюдатель может быть зарегистрирован только к одному выполненному циклу, несмотря на то, что он может быть добавлен к многократным режимам цикла выполнения в том цикле выполнения.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает булево значение, указывающее, повторяется ли CFRunLoopObserver.
Объявление
Swift
func CFRunLoopObserverDoesRepeat(_observer: CFRunLoopObserver!) -> BooleanObjective C
Boolean CFRunLoopObserverDoesRepeat ( CFRunLoopObserverRef observer );Параметры
observerНаблюдатель цикла выполнения для исследования.
Возвращаемое значение
trueеслиobserverобрабатывается во время каждой передачи через цикл выполнения;falseеслиobserverобрабатывается один раз и затем лишен законной силы.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает этапы цикла выполнения, во время которых работает наблюдатель.
Объявление
Swift
func CFRunLoopObserverGetActivities(_observer: CFRunLoopObserver!) -> CFOptionFlagsObjective C
CFOptionFlags CFRunLoopObserverGetActivities ( CFRunLoopObserverRef observer );Параметры
observerНаблюдатель цикла выполнения для исследования.
Возвращаемое значение
Комбинация битового «ИЛИ» всего цикла выполнения подготавливает в который
observerвызывается. Посмотрите Действия Цикла Выполнения для списка этапов.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает контекстную информацию для объекта CFRunLoopObserver.
Объявление
Swift
func CFRunLoopObserverGetContext(_observer: CFRunLoopObserver!, _context: UnsafeMutablePointer<CFRunLoopObserverContext>)Objective C
void CFRunLoopObserverGetContext ( CFRunLoopObserverRef observer, CFRunLoopObserverContext *context );Параметры
observerНаблюдатель цикла выполнения для исследования.
contextПо возврату, содержит контекстную информацию для
observer. Это - та же информация, переданнаяCFRunLoopObserverCreateпри созданииobserver.Обсуждение
Номер версии контекста для выполненных наблюдателей цикла в настоящее время
0. Прежде, чем вызвать эту функцию, необходимо инициализироватьversionэлементcontextк0.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает параметр упорядочивания для объекта CFRunLoopObserver.
Объявление
Swift
func CFRunLoopObserverGetOrder(_observer: CFRunLoopObserver!) -> CFIndexObjective C
CFIndex CFRunLoopObserverGetOrder ( CFRunLoopObserverRef observer );Параметры
observerНаблюдатель цикла выполнения для исследования.
Возвращаемое значение
Параметр упорядочивания для
observer. Когда многократные наблюдатели планируются в том же режиме цикла выполнения и этапе, это значение определяет порядок (от малого и большого), в котором вызывают наблюдателей.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает идентификатор типа для CFRunLoopObserver непрозрачный тип.
Объявление
Swift
func CFRunLoopObserverGetTypeID() -> CFTypeIDObjective C
CFTypeID CFRunLoopObserverGetTypeID ( void );Возвращаемое значение
Идентификатор типа для CFRunLoopObserver непрозрачный тип.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Лишает законной силы объект CFRunLoopObserver, останавливая его от когда-либо увольнения снова.
Объявление
Swift
func CFRunLoopObserverInvalidate(_observer: CFRunLoopObserver!)Objective C
void CFRunLoopObserverInvalidate ( CFRunLoopObserverRef observer );Параметры
observerНаблюдатель цикла выполнения для лишения законной силы.
Обсуждение
После того, как лишенный законной силы,
observerникогда не будет запускать и вызывать его функцию обратного вызова снова. Эта функция автоматически удаляетobserverот всех режимов цикла выполнения, в которых это было добавлено. Память не освобождена, если цикл выполнения не содержал единственную ссылку наobserver.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает булево значение, указывающее, допустим ли объект CFRunLoopObserver и в состоянии стрелять.
Объявление
Swift
func CFRunLoopObserverIsValid(_observer: CFRunLoopObserver!) -> BooleanObjective C
Boolean CFRunLoopObserverIsValid ( CFRunLoopObserverRef observer );Параметры
observerНаблюдатель цикла выполнения для исследования.
Возвращаемое значение
trueеслиobserverдопустимо, иначеfalse.Обсуждение
Неповторяющийся наблюдатель автоматически лишен законной силы после того, как это вызовут один раз.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Когда объект CFRunLoopObserver запущен, обратный вызов вызвал.
Объявление
Swift
typealias CFRunLoopObserverCallBack = CFunctionPointer<((CFRunLoopObserver!, CFRunLoopActivity, UnsafeMutablePointer<Void>) -> Void)>Objective C
typedef void (*CFRunLoopObserverCallBack) ( CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info );Параметры
observerСтреляющий наблюдатель цикла выполнения.
activityТекущий этап действия цикла выполнения.
infoinfoэлементCFRunLoopObserverContextструктура, использовавшаяся при создании наблюдателя цикла выполнения.Обсуждение
Вы указываете этот обратный вызов при создании наблюдателя цикла выполнения с
CFRunLoopObserverCreate.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Структура, содержащая определенные с помощью программы данные и обратные вызовы, с которыми можно сконфигурировать поведение объекта CFRunLoopObserver.
Объявление
Swift
struct CFRunLoopObserverContext { 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 CFRunLoopObserverContext { CFIndex version; void *info; CFAllocatorRetainCallBack retain; CFAllocatorReleaseCallBack release; CFAllocatorCopyDescriptionCallBack copyDescription; }; typedef struct CFRunLoopObserverContext CFRunLoopObserverContext;Поля
versionНомер версии структуры. Должен быть
0.infoПроизвольный указатель на определенные с помощью программы данные, которые могут быть связаны с наблюдателем цикла выполнения во время создания. Этот указатель передается всем обратным вызовам, определенным в контексте.
retainСохранить обратный вызов для Вашего определенного с помощью программы
infoуказатель. Может бытьNULL.releaseОбратный вызов выпуска для Вашего определенного с помощью программы
infoуказатель. Может бытьNULL.copyDescriptionОбратный вызов описания копии для Вашего определенного с помощью программы
infoуказатель. Может бытьNULL.Доступность
Доступный в OS X v10.0 и позже.
-
Ссылка на объект наблюдателя цикла выполнения.
Объявление
Swift
typealias CFRunLoopObserverRef = CFRunLoopObserverObjective C
typedef struct __CFRunLoopObserver *CFRunLoopObserverRef;Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Выполненное действие цикла подготавливает, в котором могут быть запланированы выполненные наблюдатели цикла.
Объявление
Swift
struct CFRunLoopActivity : RawOptionSetType { init(_rawValue: CFOptionFlags) init(rawValuerawValue: CFOptionFlags) static var Entry: CFRunLoopActivity { get } static var BeforeTimers: CFRunLoopActivity { get } static var BeforeSources: CFRunLoopActivity { get } static var BeforeWaiting: CFRunLoopActivity { get } static var AfterWaiting: CFRunLoopActivity { get } static var Exit: CFRunLoopActivity { get } static var AllActivities: CFRunLoopActivity { get } }Objective C
enum CFRunLoopActivity { kCFRunLoopEntry = (1 << 0), kCFRunLoopBeforeTimers = (1 << 1), kCFRunLoopBeforeSources = (1 << 2), kCFRunLoopBeforeWaiting = (1 << 5), kCFRunLoopAfterWaiting = (1 << 6), kCFRunLoopExit = (1 << 7), kCFRunLoopAllActivities = 0x0FFFFFFFU }; typedef enum CFRunLoopActivity CFRunLoopActivity;Константы
-
EntrykCFRunLoopEntryВход цикла выполнения, прежде, чем ввести цикл обработки событий. Это действие происходит один раз для каждого вызова к
CFRunLoopRunиCFRunLoopRunInMode.Доступный в OS X v10.0 и позже.
-
BeforeTimerskCFRunLoopBeforeTimersВ цикле обработки событий, прежде чем обрабатываются любые таймеры.
Доступный в OS X v10.0 и позже.
-
BeforeSourceskCFRunLoopBeforeSourcesВ цикле обработки событий, прежде чем обрабатываются любые источники.
Доступный в OS X v10.0 и позже.
-
BeforeWaitingkCFRunLoopBeforeWaitingВ цикле обработки событий передо снами цикла выполнения, ожидающими источника или таймера для увольнения. Это действие не происходит если
CFRunLoopRunInModeвызывается с тайм-аутом 0 секунд. Если источник версии 0 стреляет, также не происходит в определенной итерации цикла обработки событий.Доступный в OS X v10.0 и позже.
-
AfterWaitingkCFRunLoopAfterWaitingВ цикле обработки событий после того, как цикл выполнения просыпается, но прежде, чем обработать событие, разбудившее его. Это действие происходит, только если цикл выполнения действительно фактически засыпал во время текущего цикла.
Доступный в OS X v10.0 и позже.
-
ExitkCFRunLoopExitВыход цикла выполнения, после выхода из цикла обработки событий. Это действие происходит один раз для каждого вызова к
CFRunLoopRunиCFRunLoopRunInMode.Доступный в OS X v10.0 и позже.
-
AllActivitieskCFRunLoopAllActivitiesКомбинация всех предыдущих этапов.
Доступный в OS X v10.0 и позже.
Обсуждение
Этапы цикла выполнения, на которых планируется наблюдатель, выбраны, когда наблюдатель создается с
CFRunLoopObserverCreate.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
