Objective C委托 - 为什么在函数定义的第一部分指定一个实例?

Gia*_*blo 1 delegates objective-c

我对以下函数声明的第一部分意味着什么感到困惑.它添加了一个对象实例作为函数定义的一部分.

例如,在一些示例代码中,派生自UITableViewController的类ItemsViewController具有以下函数定义:

-(void) tableView:(UITableView*) aTableView didSelectRowAtIndexPath:(NSIndexPath*) indexPath
{ ... }
Run Code Online (Sandbox Code Playgroud)

这位实际上到底是什么tableView:(UITableView*) aTableView

Dav*_*vid 6

它允许您的委托作为多个UITableViews 的委托.当任何一个事件发生时UITableView,调用适当的委托方法,您可以使用第一个参数来确定UITableView事件与哪个相关,并采取相应的行动.(当然,你的代表必须有一些方法知道哪个视图是哪个视图,例如通过为每个视图提供它是代表的视图.)