Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка класса NSInvocation

Опции
Развертывание Target:

На этой странице
Язык:

NSInvocation

NSInvocation сообщение Objective C, представленное статичным, т.е. это - действие, превратился в объект. NSInvocation объекты привыкли к сообщениям промежуточной буферизации между объектами и между приложениями, прежде всего NSTimer объекты и распределенная система объектов.

NSInvocation объект содержит все элементы сообщения Objective C: цель, селектор, параметры и возвращаемое значение. Каждый из этих элементов может быть установлен непосредственно, и возвращаемое значение установлено автоматически когда NSInvocation объект диспетчеризируется.

NSInvocation объект может неоднократно диспетчеризироваться различным целям; его параметры могут быть изменены между отгрузкой для переменных результатов; даже его селектор может быть изменен на другого с той же сигнатурой метода (параметр и типы возврата). Эта гибкость делает NSInvocation полезный для повторения сообщений со многими параметрами и изменениями; вместо того, чтобы перепечатывать немного отличающееся выражение для каждого сообщения, Вы изменяете NSInvocation возразите по мере необходимости каждый раз прежде, чем диспетчеризировать его новой цели.

NSInvocation не поддерживает вызовы методов или с переменными числами параметров или с union параметры. Необходимо использовать invocationWithMethodSignature: метод класса создать NSInvocation объекты; Вы не должны создавать эти объекты использование alloc и init.

Этот класс не сохраняет параметры за содержавший вызов по умолчанию. Если те объекты могли бы исчезнуть между временем, Вы создаете свой экземпляр NSInvocation и время, Вы используете его, необходимо явно сохранить объекты сами или вызвать retainArguments метод для имения объекта вызова сохраняет их самого.

Наследование


Соответствует


Оператор импорта


Не применимый

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.0 и позже.
  • Возвраты NSInvocation возразите способный создать сообщения с помощью данной сигнатуры метода.

    Объявление

    Objective C

    + (NSInvocation *)invocationWithMethodSignature:(NSMethodSignature *)signature

    Параметры

    signature

    Объект, инкапсулирующий сигнатуру метода.

    Обсуждение

    Новый объект должен иметь свой селекторный набор с setSelector: и его набор параметров с setArgument:atIndex: прежде чем это сможет быть вызвано. Не используйте alloc/init подход для создания NSInvocation объекты.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Селектор получателя, или 0, если это не было установлено.

    Объявление

    Objective C

    @property SEL selector

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

  • цель цель Свойство

    Цель получателя, или nil если получатель не имеет никакой цели.

    Объявление

    Objective C

    @property(assign) id target

    Обсуждение

    Цель является получателем сообщения, отправленного invoke.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – invokeWithTarget:

  • Устанавливает параметр получателя.

    Объявление

    Objective C

    - (void)setArgument:(void *)buffer atIndex:(NSInteger)index

    Параметры

    buffer

    Невведенный буфер, содержащий параметр, который будет присвоен получателю. Посмотрите обсуждение ниже того, чтобы касаться значений аргументов, которые являются объектами.

    index

    Целое число, указывающее индекс параметра.

    Индексы 0 и 1 указывают скрытые параметры self и _cmd, соответственно; необходимо установить эти значения непосредственно с target и selector свойства. Используйте индексы 2, и больше для параметров обычно передавал в сообщении.

    Обсуждение

    Этот метод копирует содержание buffer как параметр в index. Число скопированных байтов определяется размером параметра.

    Когда значение аргумента является объектом, передайте указатель на переменную (или память), с которого должен быть скопирован объект:

    • NSArray *anArray;
    • [invocation setArgument:&anArray atIndex:3];

    Этот метод повышения NSInvalidArgumentException если значение index больше, чем фактическое число параметров за селектор.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – getArgument:atIndex:
    – numberOfArguments (NSMethodSignature)

  • Возвраты косвенно параметр получателя в указанном индексе.

    Объявление

    Objective C

    - (void)getArgument:(void *)buffer atIndex:(NSInteger)index

    Параметры

    buffer

    Невведенный буфер для содержания возвращенного параметра. Посмотрите обсуждение ниже того, чтобы касаться значений аргументов, которые являются объектами.

    index

    Целое число, указывающее индекс параметра для получения.

    Индексы 0 и 1 указывают скрытые параметры self и _cmd, соответственно; эти значения могут быть получены непосредственно с target и selector методы. Используйте индексы 2, и больше для параметров обычно передавал в сообщении.

    Обсуждение

    Этот метод копирует параметр, сохраненный в index в хранение, которым указывают buffer. Размер buffer должно быть достаточно большим для размещения значения аргумента.

    Когда значение аргумента является объектом, передайте указатель на переменную (или память), в который должен быть помещен объект:

    • NSArray *anArray;
    • [invocation getArgument:&anArray atIndex:3];

    Этот метод повышения NSInvalidArgumentException если index больше, чем фактическое число параметров за селектор.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – setArgument:atIndex:
    – numberOfArguments (NSMethodSignature)

  • YEStrue если получатель сохранил свои параметры, NOfalse иначе. (только для чтения)

    Объявление

    Objective C

    @property(readonly) BOOL argumentsRetained

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – retainArguments

  • Если получатель уже не сделал так, сохраняет цель и все объектные параметры получателя и копирует все свои параметры струны до и блоки.

    Объявление

    Objective C

    - (void)retainArguments

    Обсуждение

    Прежде чем этот метод вызывается, argumentsRetained возвраты NOfalse; после, это возвращается YEStrue.

    Для эффективности, недавно создаваемой NSInvocation объекты не сохраняют или копируют свои параметры, и при этом они не сохраняют свои цели, струны до копии, или копируют любые связанные блоки. Необходимо сообщить NSInvocation объект сохранить его параметры, если Вы намереваетесь кэшировать его, потому что параметры могут иначе быть выпущены перед вызовом, вызывается. NSTimer объекты всегда дают своим вызовам команду сохранять их параметры, например, потому что обычно существует задержка, прежде чем будет стрелять таймер.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Устанавливает возвращаемое значение получателя.

    Объявление

    Objective C

    - (void)setReturnValue:(void *)buffer

    Параметры

    buffer

    Невведенный буфер, содержание которого копируется как возвращаемое значение получателя.

    Обсуждение

    Когда Вы отправляете, это значение обычно устанавливается invoke или invokeWithTarget: сообщение.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – getReturnValue:
    – methodReturnLength (NSMethodSignature)
    – methodReturnType (NSMethodSignature)

  • Получает возвращаемое значение получателя.

    Объявление

    Objective C

    - (void)getReturnValue:(void *)buffer

    Параметры

    buffer

    Невведенный буфер, в который получатель копирует свое возвращаемое значение. Это должно быть достаточно большим для размещения значения. Посмотрите дискуссию ниже для получения дополнительной информации о buffer.

    Обсуждение

    Используйте NSMethodSignature метод methodReturnLength определить размер, необходимый для buffer:

    • NSUInteger length = [[myInvocation methodSignature] methodReturnLength];
    • buffer = (void *)malloc(length);
    • [invocation getReturnValue:buffer];

    Когда возвращаемое значение является объектом, передайте указатель на переменную (или память), в который должен быть помещен объект:

    • id anObject;
    • NSArray *anArray;
    • [invocation1 getReturnValue:&anObject];
    • [invocation2 getReturnValue:&anArray];

    Если NSInvocation объект никогда не вызывался, результат этого метода не определен.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – setReturnValue:
    – methodReturnType (NSMethodSignature)

  • Отправляет сообщение получателя (с параметрами) к его цели и устанавливает возвращаемое значение.

    Объявление

    Objective C

    - (void)invoke

    Обсуждение

    Необходимо поставить цель получателя, селектор и значения аргументов прежде, чем вызвать этот метод.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Ставит цель получателя, отправляет сообщение получателя (с параметрами) к той цели и устанавливает возвращаемое значение.

    Объявление

    Objective C

    - (void)invokeWithTarget:(id)anObject

    Параметры

    anObject

    Объект установить как цель получателя.

    Обсуждение

    Необходимо установить селектор получателя и значения аргументов прежде, чем вызвать этот метод.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

  • methodSignature methodSignature Свойство

    Сигнатура метода получателя. (только для чтения)

    Объявление

    Objective C

    @property(readonly, retain) NSMethodSignature *methodSignature

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.