NSRunLoop
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
NSRunLoop класс объявляет программируемый интерфейс к объектам, управляющим входными источниками. NSRunLoop возразите вводу процессов для источников, таких как события от нажатия мыши и события клавиатуры от оконной системы, NSPort объекты, и NSConnection объекты. NSRunLoop возразите также обрабатывает NSTimer события.
Ваше приложение не может или создать или явно управлять объектами NSRunLoop. Каждый NSThread объект, включая основной поток приложения, имеет NSRunLoop возразите автоматически создаваемый для него по мере необходимости. Если необходимо получить доступ к циклу выполнения текущего потока, Вы делаете так с методом класса currentRunLoop.
Обратите внимание на то, что с точки зрения NSRunloop, NSTimer объекты не «вводятся» — они - специальный тип и одна из вещей, которая средние значения является, что они не заставляют цикл выполнения возвращаться, когда они стреляют.
-
Возвраты
NSRunLoopобъект для текущего потока.Возвращаемое значение
NSRunLoopобъект для текущего потока.Обсуждение
Если цикл выполнения еще не существует для потока, каждый создается и возвращается.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
currentModeСвойствоТекущий режим ввода получателя. (только для чтения)
Объявление
Swift
var currentMode: String? { get }Objective C
@property(readonly, copy) NSString *currentModeОбсуждение
Текущий режим ввода получателя. Этот метод возвращает текущий режим ввода только, в то время как работает получатель; иначе, это возвращается
nil.Текущий режим установлен методами, выполняющими цикл выполнения, такой как
acceptInputForMode:beforeDate:иrunMode:beforeDate:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Выполняет одну передачу через цикл выполнения в указанном режиме и возвращает дату, в которую следующий таймер, как планируют, выстрелит.
Объявление
Параметры
modeРежим цикла выполнения для поиска. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
Возвращаемое значение
Дата, в которую следующий таймер, как планируют, выстрелит, или
nilпри отсутствии входных источников для этого режима.Обсуждение
Цикл выполнения вводится с непосредственным тайм-аутом, таким образом, цикл выполнения не блокирует, ожидая ввода, если никаким входным источникам не нужна обработка.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Возвращает цикл выполнения основного потока.
Возвращаемое значение
Объект, представляющий цикл выполнения основного потока.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Обсуждение
Можно использовать возвращенный цикл выполнения для конфигурирования текущего цикла выполнения с помощью Базовых вызовов функции Основы. Например, Вы могли бы использовать эту функцию для установки наблюдателя цикла выполнения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Регистрирует данный таймер в данном режиме ввода.
Объявление
Параметры
aTimerТаймер для регистрации в получателе.
modeРежим, в котором можно добавить
aTimer. Можно указать пользовательский режим или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.Обсуждение
Можно добавить таймер к многократным режимам ввода. При выполнении в определяемом режиме получатель заставляет таймер стрелять или после его запланированной даты огня. После увольнения таймер вызывает свою связанную подпрограмму обработчика, которая является селектором на заданном объекте.
Получатель сохраняет
aTimer. Для удаления таймера из всех режимов цикла выполнения, на которых это установлено отправьтеinvalidateобменивайтесь сообщениями к таймеру.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Добавляет порт как входной источник к указанному режиму цикла выполнения.
Объявление
Параметры
aPortПорт для добавления к получателю.
modeРежим, в котором можно добавить
aPort. Можно указать пользовательский режим или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.Обсуждение
Этот метод планирует порт с получателем. Можно добавить порт к многократным режимам ввода. Когда получатель работает в указанном режиме, он диспетчеризирует сообщения, предназначенные для того порта к определяемой подпрограмме обработчика порта.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
Удаляет порт из указанного режима ввода цикла выполнения.
Объявление
Параметры
aPortПорт для удаления из получателя.
modeРежим, из которого можно удалить
aPort. Можно указать пользовательский режим или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.Обсуждение
Если бы Вы добавили порт к многократным режимам ввода, то необходимо удалить его из каждого режима отдельно.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
Помещает получатель в постоянный цикл, за это время он обрабатывает данные из всех присоединенных входных источников.
Объявление
Swift
func run()Objective C
- (void)runОбсуждение
Если никакие входные источники или таймеры не присоединены к циклу выполнения, этот метод сразу выходит; иначе, это выполняет получатель в
NSDefaultRunLoopModeпутем повторного вызоваrunMode:beforeDate:. Другими словами, этот метод эффективно начинает бесконечный цикл, обрабатывающий данные из входных источников цикла выполнения и таймеров.Вручную удаление всех известных входных источников и таймеров от цикла выполнения не является гарантией, что выйдет цикл выполнения. OS X может установить и удалить дополнительные входные источники по мере необходимости для обработки запросов, предназначенных для потока получателя. Те источники могли поэтому препятствовать тому, чтобы вышел цикл выполнения.
Если Вы хотите, чтобы цикл выполнения завершился, Вы не должны использовать этот метод. Вместо этого используйте один из других методов выполнения и также проверьте другие произвольные собственные условия в цикле. Простой пример был бы:
BOOL shouldKeepRunning = YES; // globalNSRunLoop *theRL = [NSRunLoop currentRunLoop];while (shouldKeepRunning && [theRL runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]);
где
shouldKeepRunningустановлен вNOfalseгде-то в другом месте в программе.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
Выполняет цикл один раз, блокируя для ввода в указанном режиме до данной даты.
Объявление
Параметры
modeРежим, в котором можно работать. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
limitDateДата, до которой можно блокировать.
Возвращаемое значение
YEStrueесли указанное значение тайм-аута было достигнуто, если цикл выполнения выполнил и обработал входной источник или; иначе,NOfalseесли не мог бы быть запущен цикл выполнения.Обсуждение
Если никакие входные источники или таймеры не присоединены к циклу выполнения, этот метод сразу выходит и возвраты
NOfalse; иначе, это возвращается, или после первый входной источник обрабатывается или послеlimitDateдостигнут. Вручную удаление всех известных входных источников и таймеров от цикла выполнения не гарантирует, что цикл выполнения сразу выйдет. OS X может установить и удалить дополнительные входные источники по мере необходимости для обработки запросов, предназначенных для потока получателя. Те источники могли поэтому препятствовать тому, чтобы вышел цикл выполнения.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
Выполняет цикл до указанной даты, за это время это обрабатывает данные из всех присоединенных входных источников.
Объявление
Swift
func runUntilDate(_limitDate: NSDate)Objective C
- (void)runUntilDate:(NSDate *)limitDateПараметры
limitDateДата, вплоть до которой можно работать.
Обсуждение
Если никакие входные источники или таймеры не присоединены к циклу выполнения, этот метод сразу выходит; иначе, это выполняет получатель в
NSDefaultRunLoopModeпутем повторного вызоваrunMode:beforeDate:до указанной даты истечения срока.Вручную удаление всех известных входных источников и таймеров от цикла выполнения не является гарантией, что выйдет цикл выполнения. OS X может установить и удалить дополнительные входные источники по мере необходимости для обработки запросов, предназначенных для потока получателя. Те источники могли поэтому препятствовать тому, чтобы вышел цикл выполнения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
Выполняет цикл один раз или до указанной даты, принимая ввод только для указанного режима.
Объявление
Параметры
modeРежим, в котором можно работать. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
limitDateДата, вплоть до которой можно работать.
Обсуждение
Если никакие входные источники или таймеры не присоединены к циклу выполнения, этот метод сразу выходит; иначе, это выполняет цикл выполнения один раз, возвращаясь, как только один входной источник обрабатывает сообщение, или specifed время протекает.
Вручную удаление всех известных входных источников и таймеров от цикла выполнения не является гарантией, что выйдет цикл выполнения. OS X может установить и удалить дополнительные входные источники по мере необходимости для обработки запросов, предназначенных для потока получателя. Те источники могли поэтому препятствовать тому, чтобы вышел цикл выполнения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
См. также
-
Планирует отправку сообщения на текущем цикле выполнения.
Объявление
Objective C
- (void)performSelector:(SEL)aSelectortarget:(id)targetargument:(id)anArgumentorder:(NSUInteger)ordermodes:(NSArray *)modesПараметры
aSelectorСелектор, идентифицирующий метод для вызова. Этот метод не должен иметь значительного возвращаемого значения и должен взять отдельный аргумент идентификатора типа.
targetОбъект, определяющий селектор в
aSelector.anArgumentПараметр для передачи методу, когда это вызывается. Передача
nilесли метод не берет параметр.orderПриоритет для сообщения. Если многократные сообщения планируются, сообщения со значением более низкоуровневым отправляются перед сообщениями со значением высшего порядка.
modesМассив режимов ввода, за которыми может быть отправлено сообщение. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
Обсуждение
Этот метод устанавливает таймер для выполнения
aSelectorсообщение на цикле выполнения текущего потока в начале итерации цикла следующего запуска. Таймер сконфигурирован для выполнения в режимах, указанныхmodesпараметр. Когда таймер стреляет, поток пытается исключить сообщение из очереди от цикла выполнения и выполнить селектор. Если цикл выполнения работает и в одном из указанных режимов, это успешно выполняется; иначе, таймер ожидает, пока цикл выполнения не находится в одном из тех режимов.Этот метод возвраты перед
aSelectorсообщение отправляется. Получатель сохраняетtargetиanArgumentобъекты, пока таймер для селекторных огней, и затем не выпускает их как часть его очистки.Используйте этот метод, если Вы хотите, чтобы многократные сообщения были отправлены после того, как текущее событие было обработано, и Вы хотите удостовериться, что эти сообщения отправляются в определенном порядке.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Отменяет отправку ранее запланированного сообщения.
Объявление
Swift
func cancelPerformSelector(_aSelector: Selector, targettarget: AnyObject, argumentanArgument: AnyObject?)Objective C
- (void)cancelPerformSelector:(SEL)aSelectortarget:(id)targetargument:(id)anArgumentПараметры
aSelectorРанее указанный селектор.
targetРанее указанная цель.
anArgumentРанее указанный параметр.
Обсуждение
Можно использовать этот метод для отмены сообщения, ранее запланировал использование
performSelector:target:argument:order:modes:метод. Параметры идентифицируют сообщение, которое Вы хотите отменить и должны соответствовать первоначально указанных, когда был запланирован селектор. Этот метод удаляет выполнять запрос из всех режимов цикла выполнения.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Отмены все выдающиеся упорядоченный выполняют запланированный с данной целью.
Объявление
Swift
func cancelPerformSelectorsWithTarget(_target: AnyObject)Objective C
- (void)cancelPerformSelectorsWithTarget:(id)targetПараметры
targetРанее указанная цель.
Обсуждение
Этот метод отменяет ранее запланированные сообщения, связанные с целью, игнорируя селектор и параметр запланированной работы. Это в отличие от
cancelPerformSelector:target:argument:, который требует, чтобы Вы соответствовали селектор и параметр, а также цель. Этот метод удаляет выполнять запросы на объект от всех режимов цикла выполнения.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
NSRunLoopопределяет следующий режим цикла выполнения.Объявление
Objective C
extern NSString* const NSDefaultRunLoopMode; extern NSString* const NSRunLoopCommonModes;Константы
-
NSDefaultRunLoopModeРежим для контакта с входными источниками кроме
NSConnectionобъекты.Это - обычно используемый режим цикла выполнения.
Доступный в iOS 2.0 и позже.
-
NSRunLoopCommonModesОбъекты, добавленные к циклу выполнения с помощью этого значения в качестве режима, контролируются всеми режимами цикла выполнения, объявленными как элемент набора “общих" режимов; см. описание
CFRunLoopAddCommonModeдля подробных данных.Доступный в iOS 2.0 и позже.
-
