NSRunLoop
NSRunLoop
класс объявляет программируемый интерфейс к объектам, управляющим входными источниками. NSRunLoop
возразите вводу процессов для источников, таких как события от нажатия мыши и события клавиатуры от оконной системы, NSPort
объекты, и NSConnection
объекты. NSRunLoop
возразите также обрабатывает NSTimer
события.
Ваше приложение не может или создать или явно управлять объектами NSRunLoop. Каждый NSThread
объект, включая основной поток приложения, имеет NSRunLoop
возразите автоматически создаваемый для него по мере необходимости. Если необходимо получить доступ к циклу выполнения текущего потока, Вы делаете так с методом класса currentRunLoop
.
Обратите внимание на то, что с точки зрения NSRunloop
, NSTimer
объекты не «вводятся» — они - специальный тип и одна из вещей, которая средние значения является, что они не заставляют цикл выполнения возвращаться, когда они стреляют.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвраты
NSRunLoop
объект для текущего потока.Возвращаемое значение
NSRunLoop
объект для текущего потока.Обсуждение
Если цикл выполнения еще не существует для потока, каждый создается и возвращается.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
currentMode 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
Доступность
Доступный в OS X v10.0 и позже.
-
Выполняет одну передачу через цикл выполнения в указанном режиме и возвращает дату, в которую следующий таймер, как планируют, выстрелит.
Объявление
Параметры
mode
Режим цикла выполнения для поиска. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
Возвращаемое значение
Дата, в которую следующий таймер, как планируют, выстрелит, или
nil
при отсутствии входных источников для этого режима.Обсуждение
Цикл выполнения вводится с непосредственным тайм-аутом, таким образом, цикл выполнения не блокирует, ожидая ввода, если никаким входным источникам не нужна обработка.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает цикл выполнения основного потока.
Возвращаемое значение
Объект, представляющий цикл выполнения основного потока.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.5.
-
Обсуждение
Можно использовать возвращенный цикл выполнения для конфигурирования текущего цикла выполнения с помощью Базовых вызовов функции Основы. Например, Вы могли бы использовать эту функцию для установки наблюдателя цикла выполнения.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Регистрирует данный таймер в данном режиме ввода.
Объявление
Параметры
aTimer
Таймер для регистрации в получателе.
mode
Режим, в котором можно добавить
aTimer
. Можно указать пользовательский режим или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.Обсуждение
Можно добавить таймер к многократным режимам ввода. При выполнении в определяемом режиме получатель заставляет таймер стрелять или после его запланированной даты огня. После увольнения таймер вызывает свою связанную подпрограмму обработчика, которая является селектором на заданном объекте.
Получатель сохраняет
aTimer
. Для удаления таймера из всех режимов цикла выполнения, на которых это установлено отправьтеinvalidate
обменивайтесь сообщениями к таймеру.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Добавляет порт как входной источник к указанному режиму цикла выполнения.
Объявление
Параметры
aPort
Порт для добавления к получателю.
mode
Режим, в котором можно добавить
aPort
. Можно указать пользовательский режим или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.Обсуждение
Этот метод планирует порт с получателем. Можно добавить порт к многократным режимам ввода. Когда получатель работает в указанном режиме, он диспетчеризирует сообщения, предназначенные для того порта к определяемой подпрограмме обработчика порта.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Удаляет порт из указанного режима ввода цикла выполнения.
Объявление
Параметры
aPort
Порт для удаления из получателя.
mode
Режим, из которого можно удалить
aPort
. Можно указать пользовательский режим или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.Обсуждение
Если бы Вы добавили порт к многократным режимам ввода, то необходимо удалить его из каждого режима отдельно.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
configureAsServer - configureAsServer
(OS X v10.5)Осуждаемый. Ничего не делает.
Оператор осуждения
Осуждаемый начиная с OS X v10.5. Нет никакого альтернативного метода.
Объявление
Objective C
- (void)configureAsServer
Обсуждение
На OS X этот метод ничего не делает.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
Помещает получатель в постоянный цикл, за это время он обрабатывает данные из всех присоединенных входных источников.
Объявление
Swift
func run()
Objective C
- (void)run
Обсуждение
Если никакие входные источники или таймеры не присоединены к циклу выполнения, этот метод сразу выходит; иначе, это выполняет получатель в
NSDefaultRunLoopMode
путем повторного вызоваrunMode:beforeDate:
. Другими словами, этот метод эффективно начинает бесконечный цикл, обрабатывающий данные из входных источников цикла выполнения и таймеров.Вручную удаление всех известных входных источников и таймеров от цикла выполнения не является гарантией, что выйдет цикл выполнения. OS X может установить и удалить дополнительные входные источники по мере необходимости для обработки запросов, предназначенных для потока получателя. Те источники могли поэтому препятствовать тому, чтобы вышел цикл выполнения.
Если Вы хотите, чтобы цикл выполнения завершился, Вы не должны использовать этот метод. Вместо этого используйте один из других методов выполнения и также проверьте другие произвольные собственные условия в цикле. Простой пример был бы:
BOOL shouldKeepRunning = YES; // global
NSRunLoop *theRL = [NSRunLoop currentRunLoop];
while (shouldKeepRunning && [theRL runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]);
где
shouldKeepRunning
установлен вNO
false
где-то в другом месте в программе.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Выполняет цикл один раз, блокируя для ввода в указанном режиме до данной даты.
Объявление
Параметры
mode
Режим, в котором можно работать. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
limitDate
Дата, до которой можно блокировать.
Возвращаемое значение
YES
true
если указанное значение тайм-аута было достигнуто, если цикл выполнения выполнил и обработал входной источник или; иначе,NO
false
если не мог бы быть запущен цикл выполнения.Обсуждение
Если никакие входные источники или таймеры не присоединены к циклу выполнения, этот метод сразу выходит и возвраты
NO
false
; иначе, это возвращается, или после первый входной источник обрабатывается или послеlimitDate
достигнут. Вручную удаление всех известных входных источников и таймеров от цикла выполнения не гарантирует, что цикл выполнения сразу выйдет. OS X может установить и удалить дополнительные входные источники по мере необходимости для обработки запросов, предназначенных для потока получателя. Те источники могли поэтому препятствовать тому, чтобы вышел цикл выполнения.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.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
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Выполняет цикл один раз или до указанной даты, принимая ввод только для указанного режима.
Объявление
Параметры
mode
Режим, в котором можно работать. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
limitDate
Дата, вплоть до которой можно работать.
Обсуждение
Если никакие входные источники или таймеры не присоединены к циклу выполнения, этот метод сразу выходит; иначе, это выполняет цикл выполнения один раз, возвращаясь, как только один входной источник обрабатывает сообщение, или specifed время протекает.
Вручную удаление всех известных входных источников и таймеров от цикла выполнения не является гарантией, что выйдет цикл выполнения. OS X может установить и удалить дополнительные входные источники по мере необходимости для обработки запросов, предназначенных для потока получателя. Те источники могли поэтому препятствовать тому, чтобы вышел цикл выполнения.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Планирует отправку сообщения на текущем цикле выполнения.
Объявление
Objective C
- (void)performSelector:(SEL)
aSelector
target:(id)target
argument:(id)anArgument
order:(NSUInteger)order
modes:(NSArray *)modes
Параметры
aSelector
Селектор, идентифицирующий метод для вызова. Этот метод не должен иметь значительного возвращаемого значения и должен взять отдельный аргумент идентификатора типа.
target
Объект, определяющий селектор в
aSelector
.anArgument
Параметр для передачи методу, когда это вызывается. Передача
nil
если метод не берет параметр.order
Приоритет для сообщения. Если многократные сообщения планируются, сообщения со значением более низкоуровневым отправляются перед сообщениями со значением высшего порядка.
modes
Массив режимов ввода, за которыми может быть отправлено сообщение. Можно указать пользовательские режимы или использовать один из режимов, перечисленных в Выполненных Режимах Цикла.
Обсуждение
Этот метод устанавливает таймер для выполнения
aSelector
сообщение на цикле выполнения текущего потока в начале итерации цикла следующего запуска. Таймер сконфигурирован для выполнения в режимах, указанныхmodes
параметр. Когда таймер стреляет, поток пытается исключить сообщение из очереди от цикла выполнения и выполнить селектор. Если цикл выполнения работает и в одном из указанных режимов, это успешно выполняется; иначе, таймер ожидает, пока цикл выполнения не находится в одном из тех режимов.Этот метод возвраты перед
aSelector
сообщение отправляется. Получатель сохраняетtarget
иanArgument
объекты, пока таймер для селекторных огней, и затем не выпускает их как часть его очистки.Используйте этот метод, если Вы хотите, чтобы многократные сообщения были отправлены после того, как текущее событие было обработано, и Вы хотите удостовериться, что эти сообщения отправляются в определенном порядке.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Отменяет отправку ранее запланированного сообщения.
Объявление
Swift
func cancelPerformSelector(_
aSelector
: Selector, targettarget
: AnyObject, argumentanArgument
: AnyObject?)Objective C
- (void)cancelPerformSelector:(SEL)
aSelector
target:(id)target
argument:(id)anArgument
Параметры
aSelector
Ранее указанный селектор.
target
Ранее указанная цель.
anArgument
Ранее указанный параметр.
Обсуждение
Можно использовать этот метод для отмены сообщения, ранее запланировал использование
performSelector:target:argument:order:modes:
метод. Параметры идентифицируют сообщение, которое Вы хотите отменить и должны соответствовать первоначально указанных, когда был запланирован селектор. Этот метод удаляет выполнять запрос из всех режимов цикла выполнения.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Отмены все выдающиеся упорядоченный выполняют запланированный с данной целью.
Объявление
Swift
func cancelPerformSelectorsWithTarget(_
target
: AnyObject)Objective C
- (void)cancelPerformSelectorsWithTarget:(id)
target
Параметры
target
Ранее указанная цель.
Обсуждение
Этот метод отменяет ранее запланированные сообщения, связанные с целью, игнорируя селектор и параметр запланированной работы. Это в отличие от
cancelPerformSelector:target:argument:
, который требует, чтобы Вы соответствовали селектор и параметр, а также цель. Этот метод удаляет выполнять запросы на объект от всех режимов цикла выполнения.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.2 и позже.
-
NSRunLoop
определяет следующий режим цикла выполнения.Объявление
Objective C
extern NSString* const NSDefaultRunLoopMode; extern NSString* const NSRunLoopCommonModes;
Константы
-
NSDefaultRunLoopMode
NSDefaultRunLoopMode
Режим для контакта с входными источниками кроме
NSConnection
объекты.Это - обычно используемый режим цикла выполнения.
Доступный в OS X v10.0 и позже.
-
NSRunLoopCommonModes
NSRunLoopCommonModes
Объекты, добавленные к циклу выполнения с помощью этого значения в качестве режима, контролируются всеми режимами цикла выполнения, объявленными как элемент набора “общих" режимов; см. описание
CFRunLoopAddCommonMode
для подробных данных.Доступный в OS X v10.5 и позже.
-