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

ilj*_*ing 2 cocoa objective-c

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

而不是写这个:

if ([delegate respondsToSelector:@selector(treeController:canCreateGroupInParent:)])
{
    [delegate treeController:treeController canCreateGroupInParent:inGroup];
}
Run Code Online (Sandbox Code Playgroud)

我想写这个:

[[delgate safeForwarder] treeController:treeController canCreateGroupInParent:inGroup];
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢,Ilja

cat*_*lan 5

查看Peter Steinberger PSTDelegateProxy.关于它的博客文章.