从Selector变量 - Objective -C中找到参数类 /类型



我正在研究一个类,该类涉及将选择器作为以后使用的变量。需要选择器进行一个参数,一个布尔值。这样执行:

IMP imp = [ob methodForSelector:selector];
void (*func)(id, SEL, BOOL) = (void *)imp;
func(ob, selector, YES);

如果有人试图设置具有与布尔相匹配的变量的选择器,我想返回错误。有什么方法,当我可以检查其参数是否为bool时,或者一般而言,已经通过了哪个类别或类型的参数?

为什么?

我正在一个课程中设置一个准通知中心

查看方法签名:

NSMethodSignature * sig = [ob methodSignatureForSelector:selector];
NSAssert(0 == strcmp(@encode(BOOL), [sig getArgumentTypeAtIndex:2]),
         @"Method must take a BOOL as its sole argument.");

相关内容

最新更新