Can somebody explain this Objective C method declaration syntax
我正在编写一本iPhone开发手册*,但实际上并不了解目标C。在大多数情况下,我都能够了解正在发生的事情,但是有一些方法声明,如下面的方法声明,我在分析时遇到了一些问题。例如:
1 2 3 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger) section { return [self.controllers count]; //controllers is an instance variable of type NSArray in this class } |
看起来这是一个名为NumberOfRowsPreagon的方法,它返回一个nsInteger,并将nsInteger作为一个本地称为"section"的参数。但我不理解对TableView的所有引用,也不理解为什么在方法中不使用它时,它会接受一个参数。有人能解释清楚吗?谢谢。
*第258页,开始iPhone3开发,由Mark和Lamarche撰写,由Apress出版
更新:我找到了另一个更详细的so线程:目标C中的方法语法
这是一个名为:
1 | tableView:numberOfRowsInSection: |
它需要两个参数:
UITableView* NSInteger
该方法还采用隐式
正如Mark所说,如果您符合某个接口,那么不使用某些参数是完全常见的。
这是一个名为
此方法符合UITableViewDataSource协议。如果你熟悉C语言或Java,协议就像一个接口。
对于一个符合接口或协议的方法来说,忽略一些参数是完全合法的,也不算太反常。