Ссылка CFRunLoop
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import CoreFoundation
Objective C
@import CoreFoundation;
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Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Возвращает основной объект CFRunLoop.
Объявление
Swift
func CFRunLoopGetMain() -> CFRunLoop!Objective C
CFRunLoopRef CFRunLoopGetMain ( void );Возвращаемое значение
Основной цикл выполнения. Владение соблюдает Получить Правило.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.0 и позже.
-
Выполняет объект CFRunLoop текущего потока в его режиме по умолчанию неопределенно.
Объявление
Swift
func CFRunLoopRun()Objective C
void CFRunLoopRun ( void );Обсуждение
Выполнения цикла выполнения текущего потока в режиме по умолчанию (см. Режим Цикла Выполнения По умолчанию) до цикла выполнения останавливаются с
CFRunLoopStopили все источники и таймеры удалены из выполненного режима цикла по умолчанию.Выполненные циклы могут быть выполнены рекурсивно. Можно вызвать
CFRunLoopRunиз любой выноски цикла выполнения и создают вложенные выполненные активации цикла на стеке вызовов текущего потока.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.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. Источник был обработан. Это условие выхода только применяется когдаreturnAfterSourceHandledtrue.
Вы не должны указывать
kCFRunLoopCommonModesпостоянный дляmodeпараметр. Выполненные циклы всегда работают в определенном режиме. Вы указываете общие режимы только при конфигурировании наблюдателя цикла выполнения и только в ситуациях, где Вы хотите, чтобы тот наблюдатель работал больше чем в одном режиме.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.0 и позже.
-
Будит ожидание объект CFRunLoop.
Объявление
Swift
func CFRunLoopWakeUp(_rl: CFRunLoop!)Objective C
void CFRunLoopWakeUp ( CFRunLoopRef rl );Параметры
rlЦикл выполнения для пробуждения.
Обсуждение
Цикл выполнения засыпает, когда он ожидает источника или таймера для становления готовым стрелять. Если никакой источник или огни таймера, цикл выполнения остается там, пока он не испытывает таймаут или явно разбужен. Если цикл выполнения изменяется, такие как новый добавленный источник, необходимо разбудить цикл выполнения, чтобы позволить ему обрабатывать изменение. Исходное использование версии 0
CFRunLoopWakeUpзаставить цикл выполнения просыпаться после установки источника, который будет сообщен, если они хотят источник, обработанный сразу.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.0 и позже.
-
Вызывает объект CFRunLoop прекратить работать.
Объявление
Swift
func CFRunLoopStop(_rl: CFRunLoop!)Objective C
void CFRunLoopStop ( CFRunLoopRef rl );Параметры
rlЦикл выполнения для остановки.
Обсуждение
Эта функция силы
rlчтобы прекратить работать и возврат управляют к вызвавшей функцииCFRunLoopRunилиCFRunLoopRunInModeдля текущей активации цикла выполнения. Если цикл выполнения вкладывается с выноской от одной активации, начинающей другое выполнение активации, только из самой внутренней активации выходят.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает массив, содержащий все определенные режимы для объекта CFRunLoop.
Объявление
Swift
func CFRunLoopCopyAllModes(_rl: CFRunLoop!) -> CFArray!Objective C
CFArrayRef CFRunLoopCopyAllModes ( CFRunLoopRef rl );Параметры
rlЦикл выполнения для исследования.
Возвращаемое значение
Массив, содержащий все режимы цикла выполнения, определенные для
rl. Владение соблюдает Создать Правило.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.0 и позже.
-
Возвращает имя режима, в котором в настоящее время работает данный выполненный цикл.
Объявление
Swift
func CFRunLoopCopyCurrentMode(_rl: CFRunLoop!) -> CFString!Objective C
CFStringRef CFRunLoopCopyCurrentMode ( CFRunLoopRef rl );Параметры
rlЦикл выполнения для исследования.
Возвращаемое значение
Режим тот, в который
rlв настоящее время работает;NULLеслиrlне работает. Владение соблюдает Создать Правило.Обсуждение
Когда работается цикл выполнения текущего потока, возвращенное значение идентифицирует режим цикла выполнения, сделавший выноску, в которой в настоящее время выполняется Ваш код.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.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Доступность
Доступный в iOS 2.0 и позже.
-
Ставит в очередь блочный объект на данном runloop, который будет выполняться как runloop циклы в указанных режимах.
Объявление
Swift
func CFRunLoopPerformBlock(_rl: CFRunLoop!, _mode: AnyObject!, _block: (() -> Void)!)Objective C
void CFRunLoopPerformBlock ( CFRunLoopRef rl, CFTypeRef mode, void (^block)(void) );Параметры
rlЦикл выполнения.
modeCFString, идентифицирующий runloop режим или CFArray Кфстрингса, что каждый идентифицирует runloop режим.
blockБлочный объект выполниться.
Блок копируется функцией перед функциональными возвратами.
Обсуждение
Когда runloop работает в указанном
mode, блочный объект выполняется. Можно использовать эту функцию в качестве средние значения для разгрузки работы к другому потоку, подобному КакаоperformSelector:onThread:withObject:waitUntilDone:и связанные методы. Можно также использовать его в качестве альтернативы механизмам, таким как помещение CFRunLoopTimer в цикле выполнения другого потока или использования CFMessagePort для передачи информации между потоками.Этот метод ставит в очередь блок только и автоматически не будит указанный цикл выполнения. Поэтому выполнение блока происходит в следующий раз, когда цикл выполнения просыпается для обработки другого входного источника. Если Вы хотите работу, выполняемую сразу же, необходимо явно разбудить тот поток с помощью
CFRunLoopWakeUpфункция.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 4.0 и позже.
-
Возвращает идентификатор типа для CFRunLoop непрозрачный тип.
Объявление
Swift
func CFRunLoopGetTypeID() -> CFTypeIDObjective C
CFTypeID CFRunLoopGetTypeID ( void );Возвращаемое значение
Идентификатор типа для CFRunLoop непрозрачный тип.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.0 и позже.
-
Ссылка на объект цикла выполнения.
Объявление
Swift
typealias CFRunLoopRef = CFRunLoopObjective C
typedef struct __CFRunLoop *CFRunLoopRef;Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в iOS 2.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Выполнение работает, режим цикла не имеет никаких источников или таймеров для обработки.
Доступный в iOS 2.0 и позже.
-
kCFRunLoopRunStoppedCFRunLoopStopбыл вызван на цикле выполнения.Доступный в iOS 2.0 и позже.
-
kCFRunLoopRunTimedOutИнтервал требуемого времени для выполнения цикла выполнения передал.
Доступный в iOS 2.0 и позже.
-
kCFRunLoopRunHandledSourceИсточник был обработан. Это значение возвращается, только если циклу выполнения сказали работать только, пока не был обработан источник.
Доступный в iOS 2.0 и позже.
-
-
Псевдорежим цикла выполнения, управляющий объектами, контролируемыми в «общих» режимах.
Объявление
Swift
let kCFRunLoopCommonModes: CFString!Objective C
const CFStringRef kCFRunLoopCommonModes;Константы
-
kCFRunLoopCommonModesОбъекты, добавленные к циклу выполнения с помощью этого значения в качестве режима, контролируются всеми режимами цикла выполнения, объявленными как элемент набора «общих» режимов с
CFRunLoopAddCommonMode.Доступный в iOS 2.0 и позже.
Обсуждение
Выполненные циклы никогда не работают в этом режиме. Этот псевдорежим используется только в качестве специального набора источников, таймеров и наблюдателей, который совместно используется другими режимами. Дополнительную информацию см. в Управляющих Наблюдателях.
-
-
Выполненный режим цикла по умолчанию.
Объявление
Swift
let kCFRunLoopDefaultMode: CFString!Objective C
const CFStringRef kCFRunLoopDefaultMode;Константы
-
kCFRunLoopDefaultModeВыполненный режим цикла, который должен использоваться, когда поток находится в его значении по умолчанию, или неактивен, состояние, ожидающее события. Когда цикл выполнения запускается с, этот режим используется
CFRunLoopRun.Доступный в iOS 2.0 и позже.
-
