Ссылка 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
Идентификация флага, вызывают ли наблюдателя только один раз или каждый раз через цикл выполнения. Если
repeats
false
, наблюдатель лишен законной силы после того, как это вызывают один раз, даже если наблюдателя, как планировали, вызовут на многократных этапах в цикле выполнения.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
Идентификация флага, нужно ли наблюдателя вызвать только один раз или каждый раз через цикл выполнения. Если
repeats
false
, наблюдатель лишен законной силы после того, как это вызывают один раз, даже если наблюдателя, как планировали, вызовут на многократных этапах в цикле выполнения.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() -> CFTypeID
Objective 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
Текущий этап действия цикла выполнения.
info
info
элемент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 = CFRunLoopObserver
Objective 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;
Константы
-
Entry
kCFRunLoopEntry
Вход цикла выполнения, прежде, чем ввести цикл обработки событий. Это действие происходит один раз для каждого вызова к
CFRunLoopRun
иCFRunLoopRunInMode
.Доступный в OS X v10.0 и позже.
-
BeforeTimers
kCFRunLoopBeforeTimers
В цикле обработки событий, прежде чем обрабатываются любые таймеры.
Доступный в OS X v10.0 и позже.
-
BeforeSources
kCFRunLoopBeforeSources
В цикле обработки событий, прежде чем обрабатываются любые источники.
Доступный в OS X v10.0 и позже.
-
BeforeWaiting
kCFRunLoopBeforeWaiting
В цикле обработки событий передо снами цикла выполнения, ожидающими источника или таймера для увольнения. Это действие не происходит если
CFRunLoopRunInMode
вызывается с тайм-аутом 0 секунд. Если источник версии 0 стреляет, также не происходит в определенной итерации цикла обработки событий.Доступный в OS X v10.0 и позже.
-
AfterWaiting
kCFRunLoopAfterWaiting
В цикле обработки событий после того, как цикл выполнения просыпается, но прежде, чем обработать событие, разбудившее его. Это действие происходит, только если цикл выполнения действительно фактически засыпал во время текущего цикла.
Доступный в OS X v10.0 и позже.
-
Exit
kCFRunLoopExit
Выход цикла выполнения, после выхода из цикла обработки событий. Это действие происходит один раз для каждого вызова к
CFRunLoopRun
иCFRunLoopRunInMode
.Доступный в OS X v10.0 и позже.
-
AllActivities
kCFRunLoopAllActivities
Комбинация всех предыдущих этапов.
Доступный в OS X v10.0 и позже.
Обсуждение
Этапы цикла выполнения, на которых планируется наблюдатель, выбраны, когда наблюдатель создается с
CFRunLoopObserverCreate
.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-