我正在Cocoa Touch API上实现一个可选的委托方法.我想这样做的是,首先调用该方法会,如果我没有实现委托被称为......然后更改结果......然后回到我的修改版本.
这是一个例子:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; {
  /* this line: */ UIView * headerView = [someObject tableView:tableView viewForHeaderInSection:section];
  [headerView setBackgroundColor:[UIColor redColor]];
  return headerView;
}
标记的行不起作用.我可以把someObject = tableView.delegate,但这只是给我无限递归.有没有一些技巧可以让tableView做任何事情,如果没有实现可选方法呢?我不是很有希望,但如果可能的话会很酷.
如果您没有实现委托,则不会调用任何方法.代表不像子类; 它们不是语言功能.UITableView(在这种情况下)做了一些工作,看看它的-delegate属性是否为非零(这只是一个恰好被称为"委托"的随机ivar),如果是这样,它会看到委托实现了委托方法,如果它调用它,然后再做一些工作.
UITableView没有公开默认的节标题视图(我相信它是一个名为UISectionHeaderCell的私有子类),因此Apple没有对它的实现方式做出任何承诺.或者给我们一个很好的方法来获取它有几种方法可以进入相关视图,但Apple尚未向我们提供任何我所知道的支持方式.
但是对于关于代表的一般问题,你所要求的并不存在,因为代理的实现方式并不存在.
| 归档时间: | 
 | 
| 查看次数: | 643 次 | 
| 最近记录: |