Ссылка CFRunLoop
CFRunLoop возражает источникам мониторов ввода к задаче и управления отгрузками, когда они становятся готовыми к обработке. Примеры входных источников могли бы включать устройства ввода данных пользователем, сетевые соединения, периодические или задержанные временем события и асинхронные обратные вызовы.
Три типа объектов могут контролироваться циклом выполнения: источники (Ссылка CFRunLoopSource), таймеры (Ссылка CFRunLoopTimer), и наблюдатели (Ссылка CFRunLoopObserver). Для получения обратных вызовов, когда этим объектам нужна обработка Вы должны первое место эти объекты в цикл выполнения с CFRunLoopAddSource
, CFRunLoopAddTimer
, или CFRunLoopAddObserver
. Можно позже удалить объект из цикла выполнения (или лишить законной силы его) прекратить получать его обратный вызов.
Каждый источник, таймер и наблюдатель, добавленный к циклу выполнения, должны быть связаны с один или несколько режимы цикла выполнения. Режимы определяют, какие события обрабатываются циклом выполнения во время данной итерации. Каждый раз, когда цикл выполнения выполняется, он делает так в определенном режиме. В то время как в том режиме, цикл выполнения обрабатывает только события, связанные с источниками, таймерами и наблюдателями, связанными с тем режимом. Вы присваиваете большинство источников выполненному режиму цикла по умолчанию (определяемый kCFRunLoopDefaultMode
постоянный), который используется для обработки событий, когда приложение (или поток) неактивно. Однако система определяет другие режимы и может выполнить цикл выполнения в тех других режимах для ограничения, какие источники, таймеры и наблюдатели обрабатываются. Поскольку режимы цикла выполнения просто указаны как строки, можно также определить собственные режимы для ограничения обработки событий
Базовая Основа определяет специальный псевдорежим, названный общими режимами, позволяющими Вам связывать больше чем один режим с данным источником, таймером или наблюдателем. Для указания общих режимов используйте kCFRunLoopCommonModes
постоянный для режима при конфигурировании объекта. Каждый цикл выполнения имеет свой собственный независимый набор общих режимов и режима по умолчанию (kCFRunLoopDefaultMode
) всегда элемент набора. Для добавления режима к набору общих режимов используйте CFRunLoopAddCommonMode
функция.
Существует точно один выполненный цикл на поток. Вы не создаете и не уничтожаете цикл выполнения потока. Базовая Основа автоматически создает его для Вас по мере необходимости. Вы получаете цикл выполнения текущего потока с CFRunLoopGetCurrent
. Вызвать CFRunLoopRun
для выполнения цикла выполнения текущего потока в режиме по умолчанию до, цикл выполнения останавливается с CFRunLoopStop
. Можно также вызвать CFRunLoopRunInMode
выполнять цикл выполнения текущего потока в указанном режиме в течение промежутка времени набора (или пока цикл выполнения не останавливается). Если требуемый режим имеет по крайней мере один источник или таймер для контроля, цикл выполнения может только работать.
Выполненные циклы могут быть выполнены рекурсивно. Можно вызвать CFRunLoopRun
или CFRunLoopRunInMode
из любой выноски цикла выполнения и создают вложенные выполненные активации цикла на стеке вызовов текущего потока. Вы не ограничиваетесь, в которых режимах можно работать из выноски. Можно создать другую активацию цикла выполнения, работающую в любом доступном режиме цикла выполнения, включая любые режимы, уже работающие выше в стеке вызовов.
Приложения какао полагаются на CFRunLoop для реализации их собственного высокоуровневого цикла событий. При записи приложения можно добавить источники, таймеры и наблюдателей к их объектам цикла выполнения и режимам. Ваши объекты будут тогда контролироваться как часть регулярного цикла событий приложения. Используйте getCFRunLoop
метод NSRunLoop
получить соответствие CFRunLoopRef
ввести. В приложениях Углерода используйте GetCFRunLoopFromEventLoop
функция.
Для получения дополнительной информации о том, как выполненные циклы ведут себя, посмотрите Циклы Выполнения в Поточной обработке Руководства по программированию.
-
Возвращает объект CFRunLoop для текущего потока.
Объявление
Swift
func CFRunLoopGetCurrent() -> CFRunLoop!
Objective C
CFRunLoopRef CFRunLoopGetCurrent ( void );
Возвращаемое значение
Цикл выполнения текущего потока. Владение соблюдает Получить Правило.
Обсуждение
Каждый поток имеет точно один выполненный цикл, связанный с ним.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает основной объект CFRunLoop.
Объявление
Swift
func CFRunLoopGetMain() -> CFRunLoop!
Objective C
CFRunLoopRef CFRunLoopGetMain ( void );
Возвращаемое значение
Основной цикл выполнения. Владение соблюдает Получить Правило.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Выполняет объект CFRunLoop текущего потока в его режиме по умолчанию неопределенно.
Объявление
Swift
func CFRunLoopRun()
Objective C
void CFRunLoopRun ( void );
Обсуждение
Выполнения цикла выполнения текущего потока в режиме по умолчанию (см. Режим Цикла Выполнения По умолчанию) до цикла выполнения останавливаются с
CFRunLoopStop
или все источники и таймеры удалены из выполненного режима цикла по умолчанию.Выполненные циклы могут быть выполнены рекурсивно. Можно вызвать
CFRunLoopRun
из любой выноски цикла выполнения и создают вложенные выполненные активации цикла на стеке вызовов текущего потока.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Выполняет объект CFRunLoop текущего потока в определенном режиме.
Объявление
Swift
func CFRunLoopRunInMode(_
mode
: CFString!, _seconds
: CFTimeInterval, _returnAfterSourceHandled
: Boolean) -> Int32Objective C
SInt32 CFRunLoopRunInMode ( CFStringRef mode, CFTimeInterval seconds, Boolean returnAfterSourceHandled );
Параметры
mode
Режим цикла выполнения для выполнения.
mode
может быть любой произвольный CFString. Вы не должны явно создавать режим цикла выполнения, несмотря на то, что режим цикла выполнения должен содержать по крайней мере один источник или таймер для выполнения.seconds
Отрезок времени для выполнения цикла выполнения. Если
0
, только одна передача сделана через цикл выполнения перед возвратом; если многократные источники или таймеры будут готовы стрелять сразу, только один (возможно два, если Вы будете источником версии 0), то будет запущен, независимо от значенияreturnAfterSourceHandled
.returnAfterSourceHandled
Флаг, указывающий, должен ли цикл выполнения выйти после обработки одного источника. Если
false
, цикл выполнения продолжает обрабатывать события доseconds
передал.Возвращаемое значение
Значение, указывающее причину цикл выполнения, вышло. Возможные значения описаны ниже.
Обсуждение
Выполненные циклы могут быть выполнены рекурсивно. Можно вызвать
CFRunLoopRunInMode
из любой выноски цикла выполнения и создают вложенные выполненные активации цикла на стеке вызовов текущего потока. Вы не ограничиваетесь, в которых режимах можно работать из выноски. Можно создать другую активацию цикла выполнения, работающую в любом доступном режиме цикла выполнения, включая любые режимы, уже работающие выше в стеке вызовов.Цикл выполнения выходит со следующими возвращаемыми значениями при обозначенных условиях:
kCFRunLoopRunFinished
. Режим цикла выполненияmode
не имеет никаких источников или таймеров.kCFRunLoopRunStopped
. Цикл выполнения был остановлен сCFRunLoopStop
.kCFRunLoopRunTimedOut
. Временной интервалseconds
переданный.kCFRunLoopRunHandledSource
. Источник был обработан. Это условие выхода только применяется когдаreturnAfterSourceHandled
true
.
Вы не должны указывать
kCFRunLoopCommonModes
постоянный дляmode
параметр. Выполненные циклы всегда работают в определенном режиме. Вы указываете общие режимы только при конфигурировании наблюдателя цикла выполнения и только в ситуациях, где Вы хотите, чтобы тот наблюдатель работал больше чем в одном режиме.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Будит ожидание объект CFRunLoop.
Объявление
Swift
func CFRunLoopWakeUp(_
rl
: CFRunLoop!)Objective C
void CFRunLoopWakeUp ( CFRunLoopRef rl );
Параметры
rl
Цикл выполнения для пробуждения.
Обсуждение
Цикл выполнения засыпает, когда он ожидает источника или таймера для становления готовым стрелять. Если никакой источник или огни таймера, цикл выполнения остается там, пока он не испытывает таймаут или явно разбужен. Если цикл выполнения изменяется, такие как новый добавленный источник, необходимо разбудить цикл выполнения, чтобы позволить ему обрабатывать изменение. Исходное использование версии 0
CFRunLoopWakeUp
заставить цикл выполнения просыпаться после установки источника, который будет сообщен, если они хотят источник, обработанный сразу.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Вызывает объект CFRunLoop прекратить работать.
Объявление
Swift
func CFRunLoopStop(_
rl
: CFRunLoop!)Objective C
void CFRunLoopStop ( CFRunLoopRef rl );
Параметры
rl
Цикл выполнения для остановки.
Обсуждение
Эта функция силы
rl
чтобы прекратить работать и возврат управляют к вызвавшей функцииCFRunLoopRun
илиCFRunLoopRunInMode
для текущей активации цикла выполнения. Если цикл выполнения вкладывается с выноской от одной активации, начинающей другое выполнение активации, только из самой внутренней активации выходят.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает булево значение, указывающее, ожидает ли цикл выполнения события.
Объявление
Swift
func CFRunLoopIsWaiting(_
rl
: CFRunLoop!) -> BooleanObjective C
Boolean CFRunLoopIsWaiting ( CFRunLoopRef rl );
Параметры
rl
Цикл выполнения для исследования.
Возвращаемое значение
true
еслиrl
не имеет никаких событий для обработки и блокирует, ожидая источника или таймера для становления готовым стрелять;false
еслиrl
или не выполняет или в настоящее время обрабатывает источник, таймер или наблюдателя.Обсуждение
Эта функция полезна только для тестирования состояния цикла выполнения другого потока. Когда вызвано с циклом выполнения текущего потока, эта функция всегда возвращается
false
.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Добавляет объект CFRunLoopSource к режиму цикла выполнения.
Объявление
Swift
func CFRunLoopAddSource(_
rl
: CFRunLoop!, _source
: CFRunLoopSource!, _mode
: CFString!)Objective C
void CFRunLoopAddSource ( CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode );
Параметры
rl
Цикл выполнения для изменения.
source
Источник цикла выполнения для добавления. Источник сохраняется циклом выполнения.
mode
Режим цикла выполнения, к которому можно добавить
source
. Используйте константуkCFRunLoopCommonModes
добавитьsource
к набору объектов, контролируемых всеми общими режимами.Обсуждение
Если
source
источник версии 0, это вызовы функцииschedule
функция обратного вызова, указанная в структуре контекста дляsource
. ПосмотритеCFRunLoopSourceContext
для большего количества подробных данных.Источник цикла выполнения может быть зарегистрирован в многократных циклах выполнения и выполненных режимах цикла одновременно. Когда источник сообщен, какой бы ни выполненный цикл, который, оказывается, обнаруживает сигнал сначала, запустит источник.
Если
rl
уже содержитsource
вmode
, эта функция ничего не делает.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает булево значение, указывающее, содержит ли режим цикла выполнения определенный объект CFRunLoopSource.
Объявление
Swift
func CFRunLoopContainsSource(_
rl
: CFRunLoop!, _source
: CFRunLoopSource!, _mode
: CFString!) -> BooleanObjective C
Boolean CFRunLoopContainsSource ( CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode );
Параметры
rl
Цикл выполнения для исследования.
source
Источник цикла выполнения, который можно искать.
mode
Режим цикла выполнения
rl
в котором можно искать. Используйте константуkCFRunLoopCommonModes
искатьsource
в наборе объектов, контролируемых всеми общими режимами.Возвращаемое значение
true
еслиsource
находится в режимеmode
из цикла выполненияrl
, иначеfalse
.Обсуждение
Если
source
был добавлен кkCFRunLoopCommonModes
, эта функция возвратыtrue
еслиmode
такжеkCFRunLoopCommonModes
или любой из режимов, добавленный к набору общих режимов.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Удаляет объект CFRunLoopSource из режима цикла выполнения.
Объявление
Swift
func CFRunLoopRemoveSource(_
rl
: CFRunLoop!, _source
: CFRunLoopSource!, _mode
: CFString!)Objective C
void CFRunLoopRemoveSource ( CFRunLoopRef rl, CFRunLoopSourceRef source, CFStringRef mode );
Параметры
rl
Цикл выполнения для изменения.
source
Источник цикла выполнения для удаления.
mode
Режим цикла выполнения
rl
из которого можно удалитьsource
. Используйте константуkCFRunLoopCommonModes
удалитьsource
от набора объектов, контролируемых всеми общими режимами.Обсуждение
Если
source
источник версии 0, это вызовы функцииcancel
функция обратного вызова, указанная в структуре контекста дляsource
. ПосмотритеCFRunLoopSourceContext
иCFRunLoopSourceContext1
для большего количества подробных данных.Если
rl
не содержитsource
вmode
, эта функция ничего не делает.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Добавляет объект CFRunLoopObserver к режиму цикла выполнения.
Объявление
Swift
func CFRunLoopAddObserver(_
rl
: CFRunLoop!, _observer
: CFRunLoopObserver!, _mode
: CFString!)Objective C
void CFRunLoopAddObserver ( CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode );
Параметры
rl
Цикл выполнения для изменения.
observer
Наблюдатель цикла выполнения для добавления.
mode
Режим цикла выполнения, к которому можно добавить
observer
. Используйте константуkCFRunLoopCommonModes
добавитьobserver
к набору объектов, контролируемых всеми общими режимами.Обсуждение
Наблюдатель цикла выполнения может быть зарегистрирован только в одном выполненном цикле за один раз, несмотря на то, что он может быть добавлен к многократным режимам цикла выполнения в том цикле выполнения.
Если
rl
уже содержитobserver
вmode
, эта функция ничего не делает.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает булево значение, указывающее, содержит ли режим цикла выполнения определенный объект CFRunLoopObserver.
Объявление
Swift
func CFRunLoopContainsObserver(_
rl
: CFRunLoop!, _observer
: CFRunLoopObserver!, _mode
: CFString!) -> BooleanObjective C
Boolean CFRunLoopContainsObserver ( CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode );
Параметры
rl
Цикл выполнения для исследования.
observer
Наблюдатель цикла выполнения, которого можно искать.
mode
Режим цикла выполнения, в котором можно искать
observer
. Используйте константуkCFRunLoopCommonModes
искатьobserver
в наборе объектов, контролируемых всеми общими режимами.Возвращаемое значение
true
еслиobserver
находится в режимеmode
из цикла выполненияrl
, иначеfalse
.Обсуждение
Если
observer
был добавлен кkCFRunLoopCommonModes
, эта функция возвратыtrue
еслиmode
такжеkCFRunLoopCommonModes
или любой из режимов, добавленный к набору общих режимов.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Удаляет объект CFRunLoopObserver из режима цикла выполнения.
Объявление
Swift
func CFRunLoopRemoveObserver(_
rl
: CFRunLoop!, _observer
: CFRunLoopObserver!, _mode
: CFString!)Objective C
void CFRunLoopRemoveObserver ( CFRunLoopRef rl, CFRunLoopObserverRef observer, CFStringRef mode );
Параметры
rl
Цикл выполнения для изменения.
observer
Наблюдатель цикла выполнения для удаления.
mode
Режим цикла выполнения
rl
из которого можно удалитьobserver
. Используйте константуkCFRunLoopCommonModes
удалитьobserver
от набора объектов, контролируемых всеми общими режимами.Обсуждение
Если
rl
не содержитobserver
вmode
, эта функция ничего не делает.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Добавляет режим к набору выполненных общих режимов цикла.
Объявление
Swift
func CFRunLoopAddCommonMode(_
rl
: CFRunLoop!, _mode
: CFString!)Objective C
void CFRunLoopAddCommonMode ( CFRunLoopRef rl, CFStringRef mode );
Параметры
rl
Цикл выполнения для изменения. Каждый цикл выполнения имеет свой собственный независимый список режимов, которые находятся в наборе общих режимов.
mode
Режим цикла выполнения для добавления к набору общих режимов
rl
.Обсуждение
Когда цикл выполнения работает в одном из тех режимов, источники, таймеры и наблюдатели регистрируются к один или несколько режимы цикла выполнения и только работают. Общие режимы являются рядом выполненных режимов цикла, для которых можно определить ряд источников, таймеров и наблюдателей, совместно использующихся этими режимами. Вместо того, чтобы регистрировать источник, например, к каждому определенному режиму цикла выполнения, можно зарегистрировать его один раз к общему псевдорежиму цикла выполнения, и это будет автоматически зарегистрировано в каждом режиме цикла выполнения в наборе общего режима. Аналогично, когда режим добавляется к набору общих режимов, любых источников, таймеров, или наблюдатели, уже зарегистрированные к общему псевдорежиму, добавляются к недавно добавленному общему режиму.
Как только режим добавляется к набору общих режимов, это не может быть удалено.
Добавление, Содержит, и Удалите функции для источников, таймеров, и наблюдатели воздействуют на набор цикла выполнения общих режимов, когда Вы используете константу
kCFRunLoopCommonModes
для режима цикла выполнения.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает массив, содержащий все определенные режимы для объекта CFRunLoop.
Объявление
Swift
func CFRunLoopCopyAllModes(_
rl
: CFRunLoop!) -> CFArray!Objective C
CFArrayRef CFRunLoopCopyAllModes ( CFRunLoopRef rl );
Параметры
rl
Цикл выполнения для исследования.
Возвращаемое значение
Массив, содержащий все режимы цикла выполнения, определенные для
rl
. Владение соблюдает Создать Правило.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает имя режима, в котором в настоящее время работает данный выполненный цикл.
Объявление
Swift
func CFRunLoopCopyCurrentMode(_
rl
: CFRunLoop!) -> CFString!Objective C
CFStringRef CFRunLoopCopyCurrentMode ( CFRunLoopRef rl );
Параметры
rl
Цикл выполнения для исследования.
Возвращаемое значение
Режим тот, в который
rl
в настоящее время работает;NULL
еслиrl
не работает. Владение соблюдает Создать Правило.Обсуждение
Когда работается цикл выполнения текущего потока, возвращенное значение идентифицирует режим цикла выполнения, сделавший выноску, в которой в настоящее время выполняется Ваш код.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Добавляет объект CFRunLoopTimer к режиму цикла выполнения.
Объявление
Swift
func CFRunLoopAddTimer(_
rl
: CFRunLoop!, _timer
: CFRunLoopTimer!, _mode
: CFString!)Objective C
void CFRunLoopAddTimer ( CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode );
Параметры
rl
Цикл выполнения для изменения.
timer
Таймер цикла выполнения для добавления.
mode
Режим цикла выполнения
rl
к которому можно добавитьtimer
. Используйте константуkCFRunLoopCommonModes
добавитьtimer
к набору объектов, контролируемых всеми общими режимами.Обсуждение
Таймер цикла выполнения может быть зарегистрирован только в одном выполненном цикле за один раз, несмотря на то, что это может быть добавлено к многократным режимам цикла выполнения в том цикле выполнения.
Если
rl
уже содержитtimer
вmode
, эта функция ничего не делает.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает время, в которое выстрелит следующий таймер.
Объявление
Swift
func CFRunLoopGetNextTimerFireDate(_
rl
: CFRunLoop!, _mode
: CFString!) -> CFAbsoluteTimeObjective C
CFAbsoluteTime CFRunLoopGetNextTimerFireDate ( CFRunLoopRef rl, CFStringRef mode );
Параметры
rl
Цикл выполнения для исследования.
mode
Режим цикла выполнения в
rl
протестировать.Возвращаемое значение
Самое раннее время увольнения таймеров цикла выполнения зарегистрировалось в
mode
для цикла выполненияrl
.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Удаляет объект CFRunLoopTimer из режима цикла выполнения.
Объявление
Swift
func CFRunLoopRemoveTimer(_
rl
: CFRunLoop!, _timer
: CFRunLoopTimer!, _mode
: CFString!)Objective C
void CFRunLoopRemoveTimer ( CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode );
Параметры
rl
Цикл выполнения для изменения.
timer
Таймер цикла выполнения для удаления.
mode
Режим цикла выполнения
rl
из которого можно удалитьtimer
. Используйте константуkCFRunLoopCommonModes
удалитьtimer
от набора объектов, контролируемых всеми общими режимами.Обсуждение
Если
rl
не содержитtimer
вmode
, эта функция ничего не делает.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает булево значение, указывающее, содержит ли режим цикла выполнения определенный объект CFRunLoopTimer.
Объявление
Swift
func CFRunLoopContainsTimer(_
rl
: CFRunLoop!, _timer
: CFRunLoopTimer!, _mode
: CFString!) -> BooleanObjective C
Boolean CFRunLoopContainsTimer ( CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode );
Параметры
rl
Цикл выполнения для исследования.
timer
Таймер цикла выполнения, который можно искать.
mode
Режим цикла выполнения
rl
в котором можно искатьtimer
. Используйте константуkCFRunLoopCommonModes
искатьtimer
в наборе объектов, контролируемых всеми общими режимами.Возвращаемое значение
true
еслиtimer
находится в режимеmode
из цикла выполненияrl
,false
иначе.Обсуждение
Если
timer
был добавлен кkCFRunLoopCommonModes
, эта функция возвратыtrue
еслиmode
такжеkCFRunLoopCommonModes
или любой из режимов, добавленный к набору общих режимов.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Ставит в очередь блочный объект на данном runloop, который будет выполняться как runloop циклы в указанных режимах.
Объявление
Swift
func CFRunLoopPerformBlock(_
rl
: CFRunLoop!, _mode
: AnyObject!, _block
: (() -> Void)!)Objective C
void CFRunLoopPerformBlock ( CFRunLoopRef rl, CFTypeRef mode, void (^block)(void) );
Параметры
rl
Цикл выполнения.
mode
CFString, идентифицирующий runloop режим или CFArray Кфстрингса, что каждый идентифицирует runloop режим.
block
Блочный объект выполниться.
Блок копируется функцией перед функциональными возвратами.
Обсуждение
Когда runloop работает в указанном
mode
, блочный объект выполняется. Можно использовать эту функцию в качестве средние значения для разгрузки работы к другому потоку, подобному КакаоperformSelector:onThread:withObject:waitUntilDone:
и связанные методы. Можно также использовать его в качестве альтернативы механизмам, таким как помещение CFRunLoopTimer в цикле выполнения другого потока или использования CFMessagePort для передачи информации между потоками.Этот метод ставит в очередь блок только и автоматически не будит указанный цикл выполнения. Поэтому выполнение блока происходит в следующий раз, когда цикл выполнения просыпается для обработки другого входного источника. Если Вы хотите работу, выполняемую сразу же, необходимо явно разбудить тот поток с помощью
CFRunLoopWakeUp
функция.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.6 и позже.
-
Возвращает идентификатор типа для CFRunLoop непрозрачный тип.
Объявление
Swift
func CFRunLoopGetTypeID() -> CFTypeID
Objective C
CFTypeID CFRunLoopGetTypeID ( void );
Возвращаемое значение
Идентификатор типа для CFRunLoop непрозрачный тип.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Ссылка на объект цикла выполнения.
Объявление
Swift
typealias CFRunLoopRef = CFRunLoop
Objective C
typedef struct __CFRunLoop *CFRunLoopRef;
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.0 и позже.
-
Коды возврата для
CFRunLoopRunInMode
, идентификация причины цикл выполнения вышла.Объявление
Swift
var kCFRunLoopRunFinished: Int { get } var kCFRunLoopRunStopped: Int { get } var kCFRunLoopRunTimedOut: Int { get } var kCFRunLoopRunHandledSource: Int { get }
Objective C
enum { kCFRunLoopRunFinished = 1, kCFRunLoopRunStopped = 2, kCFRunLoopRunTimedOut = 3, kCFRunLoopRunHandledSource = 4 };
Константы
-
kCFRunLoopRunFinished
kCFRunLoopRunFinished
Выполнение работает, режим цикла не имеет никаких источников или таймеров для обработки.
Доступный в OS X v10.0 и позже.
-
kCFRunLoopRunStopped
kCFRunLoopRunStopped
CFRunLoopStop
был вызван на цикле выполнения.Доступный в OS X v10.0 и позже.
-
kCFRunLoopRunTimedOut
kCFRunLoopRunTimedOut
Интервал требуемого времени для выполнения цикла выполнения передал.
Доступный в OS X v10.0 и позже.
-
kCFRunLoopRunHandledSource
kCFRunLoopRunHandledSource
Источник был обработан. Это значение возвращается, только если циклу выполнения сказали работать только, пока не был обработан источник.
Доступный в OS X v10.0 и позже.
-
-
Псевдорежим цикла выполнения, управляющий объектами, контролируемыми в «общих» режимах.
Объявление
Swift
let kCFRunLoopCommonModes: CFString!
Objective C
const CFStringRef kCFRunLoopCommonModes;
Константы
-
kCFRunLoopCommonModes
kCFRunLoopCommonModes
Объекты, добавленные к циклу выполнения с помощью этого значения в качестве режима, контролируются всеми режимами цикла выполнения, объявленными как элемент набора «общих» режимов с
CFRunLoopAddCommonMode
.Доступный в OS X v10.0 и позже.
Обсуждение
Выполненные циклы никогда не работают в этом режиме. Этот псевдорежим используется только в качестве специального набора источников, таймеров и наблюдателей, который совместно используется другими режимами. Дополнительную информацию см. в Управляющих Наблюдателях.
-
-
Выполненный режим цикла по умолчанию.
Объявление
Swift
let kCFRunLoopDefaultMode: CFString!
Objective C
const CFStringRef kCFRunLoopDefaultMode;
Константы
-
kCFRunLoopDefaultMode
kCFRunLoopDefaultMode
Выполненный режим цикла, который должен использоваться, когда поток находится в его значении по умолчанию, или неактивен, состояние, ожидающее события. Когда цикл выполнения запускается с, этот режим используется
CFRunLoopRun
.Доступный в OS X v10.0 и позже.
-