我目前正在开发一个iOS库,用于跟踪用户的互动,例如按钮点按,文本编辑等。
为了跟踪表格视图的行选择,我使用方法调配来包装tableView:didSelectRowAtIndexPath:委托方法。
当tableView:didSelectRowAtIndexPath:委托方法在使用该库的应用程序中定义时,它运行良好。
但是,当tableView:didSelectRowAtIndexPath:delegate方法未定义时,我将其动态添加到委托实例,但tableView:didSelectRowAtIndexPath:委托方法不会被表视图调用。
// Add an original tableView:didSelectRowAtIndexPath: if not exists.
if ( ! [delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)] )
{
BOOL result = class_addMethod( [delegate class], @selector(tableView:didSelectRowAtIndexPath:), (IMP)tableViewDidSelectRowAtIndexPathIMP, types );
if ( ! result )
return;
}
当我手动调用添加的方法时,它会响应。
有什么想法吗?