NSMethodSignature
Оператор импорта
Не применимый
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
NSMethodSignature записи объекта вводят информацию для параметров и возвращаемого значения метода. Это используется для передачи сообщений, что принимающий объект не отвечает на — прежде всего в случае распределенных объектов. Вы обычно создаете NSMethodSignature объектное использование NSObject methodSignatureForSelector: метод экземпляра (на OS X v10.5 и позже можно также использовать signatureWithObjCTypes:). Это тогда используется для создания NSInvocation объект, передающийся как параметр a forwardInvocation: сообщение для пересылки вызова к тому, что другой объект может обработать сообщение. В случае по умолчанию, NSObject вызывает doesNotRecognizeSelector:, который повышает исключение. Для распределенных объектов, NSInvocation объект кодируется с помощью информации в NSMethodSignature возразите и отправленный в реальный объект, представленный получателем сообщения.
NSMethodSignature возразите представляет его типы аргумента индексом с getArgumentTypeAtIndex: метод. Скрытые параметры за каждый метод, self и _cmd, в индексах 0 и 1, соответственно. Параметры, обычно указанные в вызове сообщения, следуют за ними. В дополнение к типам аргумента, NSMethodSignature возразите предлагает общее количество параметров с numberOfArguments, общая длина стекового фрейма, занятая всеми параметрами frameLength (это меняется в зависимости от аппаратной архитектуры), и длина и тип возвращаемого значения с methodReturnLength и methodReturnType. Наконец, приложения с помощью распределенных объектов могут определить, является ли метод асинхронным с isOneway метод.
-
Возвраты
NSMethodSignatureобъект для данной строки типа метода Objective C.Объявление
Objective C
+ (NSMethodSignature *)signatureWithObjCTypes:(const char *)typesПараметры
typesМассив символов, содержащих кодировки типа для аргументов метода.
Индексы начинаются
0. Скрытые параметрыself(идентификатора типа) и_cmd(типа SEL), в индексах0и1; специфичные для метода параметры начинаются в индексе2.Возвращаемое значение
NSMethodSignatureобъект для поданной строки типа метода Objective Ctypes.Обсуждение
Специальные замечания
Этот метод, доступный начиная с OS X v10.0, представлен в OS X v10.5. Только введите строки кодирования стиля времени выполнения, против которого работает приложение, поддерживаются. В представлении этого метода нет никакой приверженности двоичному файлу, совместимо поддерживающему строки кодирования типа «старого стиля» после того, как произойдут такие изменения.
Именно Ваша ответственность передать в строках типа или от текущих данных во время выполнения или соответствует стиль строки типа в использовании ко времени выполнения, на котором работает приложение.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает кодирование типа для параметра в данном индексе.
Объявление
Objective C
- (const char *)getArgumentTypeAtIndex:(NSUInteger)indexПараметры
indexИндекс параметра для получения.
Возвращаемое значение
Кодирование типа для параметра в
index.Обсуждение
Индексы начинаются
0. Скрытые параметрыself(идентификатора типа) и_cmd(типа SEL), в индексах0и1; специфичные для метода параметры начинаются в индексе2. ПовышенияNSInvalidArgumentExceptionеслиindexявляется слишком большим для фактического числа параметров.Типы аргумента даны как струны до с кодированием типа Objective C. Это кодирование специфично для реализации, таким образом, приложения должны использовать его с осторожностью.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
-
numberOfArgumentsСвойствоЧисло параметров зарегистрировано в получателе. (только для чтения)
Объявление
Objective C
@property(readonly) NSUInteger numberOfArgumentsОбсуждение
Всегда существует по крайней мере два параметра, потому что
NSMethodSignatureобъект включает скрытые параметрыselfи_cmd, то, которые являются первыми двумя параметрами, передало каждой реализации метода.Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
-
frameLengthСвойствоЧисло байтов, которые параметры, взятые вместе, занимают на штабеле. (только для чтения)
Объявление
Objective C
@property(readonly) NSUInteger frameLengthОбсуждение
Это число меняется в зависимости от аппаратной архитектуры выполнение приложения на.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
-
methodReturnTypeСвойствоСтруна до, кодирующая тип возврата метода в кодировании типа Objective C. (только для чтения)
Объявление
Objective C
@property(readonly) const char *methodReturnTypeОбсуждение
Это кодирование специфично для реализации, таким образом, приложения должны использовать его с осторожностью.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
См. также
-
methodReturnLengthСвойствоЧисло байтов требуется для возвращаемого значения. (только для чтения)
Объявление
Objective C
@property(readonly) NSUInteger methodReturnLengthОператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Возвращает булево значение, указывающее, является ли получатель асинхронным, когда вызвано через распределенные объекты.
Объявление
Objective C
- (BOOL)isOnewayВозвращаемое значение
YEStrueесли получатель является асинхронным, когда вызвано через распределенные объекты, иначеNOfalse.Обсуждение
Если метод
oneway, отправитель удаленного сообщения не блокирует ожидание ответа.Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в iOS 2.0 и позже.
