是否有一个Cocoa代理类让我看起来像“respondsToSelector:” - 检查?

时间:2014-01-17 11:53:41

标签: objective-c cocoa

您是否了解现有的Cocoa代理或转发器类,这使我无法使用respondsToSelector:每次我想在其他对象上调用可选方法时进行检查?

而不是写这个:

if ([delegate respondsToSelector:@selector(treeController:canCreateGroupInParent:)])
{
    [delegate treeController:treeController canCreateGroupInParent:inGroup];
}

我想写这个:

[[delgate safeForwarder] treeController:treeController canCreateGroupInParent:inGroup];

safeForwarder应该捕获调用并重定向到它的目标,如果它实现了所请求的方法。

任何人都知道这样做的现有组件。不想重新发明轮子。

谢谢, ILJA

1 个答案:

答案 0 :(得分:5)

查看Peter Steinberger PSTDelegateProxy。关于它的blog post