objective-c - 是否有一个 Cocoa 代理类可以让我免于 "respondsToSelector:"-check ?

标签 objective-c cocoa

您是否知道现有的 Cocoa 代理或转发器类,可以让我在每次我想在其他对象上调用可选方法时检查respondsToSelector:检查?

不要这样写:

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

我想写这个:

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

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

任何人都知道执行此操作的现有组件。不想重新发明轮子。

谢谢, 伊利亚

最佳答案

查看彼得·斯坦伯格 PSTDelegateProxy 。这里是blog post关于它。

关于objective-c - 是否有一个 Cocoa 代理类可以让我免于 "respondsToSelector:"-check ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185340/

相关文章:

cocoa - 隐藏核心数据高级设置警告

objective-c - 10.6 中锁定屏幕

objective-c - 如果一个对象提供设置委托(delegate)对象 - 我是否必须设置一个?

objective-c - 当 NSButton 上有另一个控件(如 NSLabel)时,NSButton 单击不起作用

ios - 根据输入的字符限制 UITextField 在用户输入时显示的内容

iphone - 专业人员如何检索 iPhone 应用程序中的数据? (数据库)

iphone - 尝试使用 Copy.asmx Web 服务将内容上传到 Sharepoint 站点时出现 400 Bad Request

ios - objective-C : Keep a View Controller active when dismissed?

cocoa - 在构造函数中传递 Controller 总是不好的做法吗?

cocoa - 在 Cocoa 中绘制一堆(~200)彩色矩形的最佳方法是什么?