Например, в Javascript вы можете получить arity (число аргументов, которое должна принимать функция), просто func.length.Как я могу получить эту информацию для метода в Objective-C?
func.length
NSMethodSignature отлично подходит для всех видов отражающей информации.
NSMethodSignature
SEL selector = @selector(foo:); NSMethodSignature *sig = [someObj methodSignatureForSelector:selector] int argCount = [sig numberOfArguments];
Когда нет объекта-получателя для отправки -methodSignatureForSelector:, можно использовать NSStringFromSelector() и подсчитывать количество вхождений символа двоеточия.
-methodSignatureForSelector:
NSStringFromSelector()
Из Ссылка времени выполнения Objective C
method_getNumberOfArguments Возвращает количество аргументов, принятых методом. unsigned method_getNumberOfArguments (Метод метода) Параметры метода Указатель на структуру данных метода.Передайте метод, о котором идет речь.Возвращаемое значение Целое число, содержащее количество аргументов, принятых данным методом.
method_getNumberOfArguments
Возвращает количество аргументов, принятых методом.
unsigned method_getNumberOfArguments (Метод метода) Параметры метода Указатель на структуру данных метода.Передайте метод, о котором идет речь.Возвращаемое значение Целое число, содержащее количество аргументов, принятых данным методом.