有例子类:如何从Cocoa中的子类委托方法调用超类委托方法?
@interface OutlineViewController : NSOutlineView <NSOutlineViewDataSource, NSOutlineViewDelegate>
@end
@implementation OutlineViewController
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
NSTableCellView *result = nil;
if (myCondition)
{
// ...
return result;
} else {
// how return defult?
}
}
@end
有来自委托方法调用可能实现默认?
不清楚为什么您会为-respondsToSelector获得额外的分数。如果这是一种重载方法,它将起作用。如果这不是一个重载的方法,为什么你会首先调用超级?这两者都可以在“代码作者”时间静态确定。 – 2014-09-22 05:16:24
@JeffLaing NSOutlineViewDelegate协议中的方法都是可选的,所以我们不应该假设'super'采用委托协议,它必然会实现所讨论的方法。也就是说,你的评论促使我更加关注这个问题 - 我没有注意到在这种情况下超类是NSOutlineView本身。 – Caleb 2014-09-22 05:39:06
我得到错误:OutlineViewController.m:144:12:'NSOutlineView'没有可见的@interface声明选择器'outlineView:heightOfRowByItem:' – abg 2014-09-22 06:00:36