开发者

How to get the arity of a method?

开发者 https://www.devze.com 2023-01-12 22:39 出处:网络
In Javascript, for example, you can get the arity (the number of arguments a function is supposed to take) by simply func.length. How can I get this information for a meth开发者_开发问答od in Objectiv

In Javascript, for example, you can get the arity (the number of arguments a function is supposed to take) by simply func.length. How can I get this information for a meth开发者_开发问答od in Objective-C?


NSMethodSignature is awesome for all kind of reflection information.

SEL selector = @selector(foo:);
NSMethodSignature *sig = [someObj methodSignatureForSelector:selector]
int argCount = [sig numberOfArguments];


When there’s no receiver object to send -methodSignatureForSelector: to, it’s possible to use NSStringFromSelector() and count the number of occurrences of the colon character.


From The Objective-C Runtime Reference

method_getNumberOfArguments

Returns the number of arguments accepted by a method.

unsigned method_getNumberOfArguments(Method method) Parameters method A pointer to a Method data structure. Pass the method in question. Return Value An integer containing the number of arguments accepted by the given method.

0

精彩评论

暂无评论...
验证码 换一张
取 消