NSMethodSignature
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
метод.
Оператор импорта
Не применимый
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвраты
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;
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает кодирование типа для параметра в данном индексе.
Объявление
Objective C
- (const char *)getArgumentTypeAtIndex:(NSUInteger)
index
Параметры
index
Индекс параметра для получения.
Возвращаемое значение
Кодирование типа для параметра в
index
.Обсуждение
Индексы начинаются
0
. Скрытые параметрыself
(идентификатора типа) и_cmd
(типа SEL), в индексах0
и1
; специфичные для метода параметры начинаются в индексе2
. ПовышенияNSInvalidArgumentException
еслиindex
является слишком большим для фактического числа параметров.Типы аргумента даны как струны до с кодированием типа Objective C. Это кодирование специфично для реализации, таким образом, приложения должны использовать его с осторожностью.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
numberOfArguments numberOfArguments
СвойствоЧисло параметров зарегистрировано в получателе. (только для чтения)
Объявление
Objective C
@property(readonly) NSUInteger numberOfArguments
Обсуждение
Всегда существует по крайней мере два параметра, потому что
NSMethodSignature
объект включает скрытые параметрыself
и_cmd
, то, которые являются первыми двумя параметрами, передало каждой реализации метода.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
frameLength frameLength
СвойствоЧисло байтов, которые параметры, взятые вместе, занимают на штабеле. (только для чтения)
Объявление
Objective C
@property(readonly) NSUInteger frameLength
Обсуждение
Это число меняется в зависимости от аппаратной архитектуры выполнение приложения на.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
methodReturnType methodReturnType
СвойствоСтруна до, кодирующая тип возврата метода в кодировании типа Objective C. (только для чтения)
Объявление
Objective C
@property(readonly) const char *methodReturnType
Обсуждение
Это кодирование специфично для реализации, таким образом, приложения должны использовать его с осторожностью.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
methodReturnLength methodReturnLength
СвойствоЧисло байтов требуется для возвращаемого значения. (только для чтения)
Объявление
Objective C
@property(readonly) NSUInteger methodReturnLength
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает булево значение, указывающее, является ли получатель асинхронным, когда вызвано через распределенные объекты.
Объявление
Objective C
- (BOOL)isOneway
Возвращаемое значение
YES
true
если получатель является асинхронным, когда вызвано через распределенные объекты, иначеNO
false
.Обсуждение
Если метод
oneway
, отправитель удаленного сообщения не блокирует ожидание ответа.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.