例如,在Javascript中,您可以通过func.length
获取arity(函数应该采用的参数数量)。如何获取Objective-C中方法的这些信息?
答案 0 :(得分:7)
NSMethodSignature
对于所有类型的反射信息都很棒。
SEL selector = @selector(foo:);
NSMethodSignature *sig = [someObj methodSignatureForSelector:selector]
int argCount = [sig numberOfArguments];
答案 1 :(得分:2)
当没有接收者对象发送-methodSignatureForSelector:
时,可以使用NSStringFromSelector()
并计算冒号字符的出现次数。
答案 2 :(得分:1)
来自Objective-C Runtime Reference
method_getNumberOfArguments
返回a接受的参数数量 方法
无符号 method_getNumberOfArguments(方法 方法)参数方法指向的指针 方法数据结构。通过 有问题的方法。回报价值 包含数字的整数 给定的接受的论点 方法