Category声明: @interface UIControl (Additions) - (void)removeAllTargets; @end Category实现: @implementation UIControl (Additions) - (void)removeAllTargets { for (id target in [self allTargets]) { [self removeTarget:target action:NULL forControlEvents:UIControlEventAllEvents]; } } @end
从代码中可以看出,本质上彻底清理所有target的处理函数也是通过逐个清理实现的,但由于提供了removeAllTargets,对外隐藏了实现细节,实际应用中就可以轻松搞定了。