我正在处理一个涉及将选择器作为变量发送以供稍后使用的类。该选择器要求接受一个BOOL值参数。可按如下方式执行:
如果有人尝试使用与BOOL不匹配的变量设置选择器,我希望返回一个错误。在接收选择器时,是否有一种方法可以检查其参数是否为BOOL,或者通常情况下,已传递哪个类或类型的参数?
为什么要这样做呢?
我正在其中一个类中设置准通知中心,以便我可以轻松地添加观察者并更好地控制信息分发。
IMP imp = [ob methodForSelector:selector];
void (*func)(id, SEL, BOOL) = (void *)imp;
func(ob, selector, YES);
如果有人尝试使用与BOOL不匹配的变量设置选择器,我希望返回一个错误。在接收选择器时,是否有一种方法可以检查其参数是否为BOOL,或者通常情况下,已传递哪个类或类型的参数?
为什么要这样做呢?
我正在其中一个类中设置准通知中心,以便我可以轻松地添加观察者并更好地控制信息分发。
@encode()
中的BOOL
更改为id
(或类名,但任何类名都会编码为与id
相同的内容)。 - jscs