@protocol UITableViewDataSource<NSObject>- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;本人新手,对于协议里的这种方法的声明,有点看不懂啊。一般不都是 (返回类型)方法名称:参数列表....的吗?这两个方法的名称都是 tableView吗?而且必须是tableView吗?在实现协议的时候,名字也要完全相同吗? 对于这种方法的声明,各部分的含义如何去理解??谢谢了!!
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;本人新手,对于协议里的这种方法的声明,有点看不懂啊。一般不都是 (返回类型)方法名称:参数列表....的吗?这两个方法的名称都是 tableView吗?而且必须是tableView吗?在实现协议的时候,名字也要完全相同吗? 对于这种方法的声明,各部分的含义如何去理解??谢谢了!!
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
return ...;
}
第二个是:tableView cellForRowAtIndexPath它多个参数是插在方法名中间的,而不是像其他语言一样,前面方法名,后面多个参数
OBJ-C这种比较长的函数名是为了让人明白每个函数大概的作用。
最前面的括号是返回类型 中间的都是参数类型
还是有点看不懂啊。身边没有会obj-c的人,所以请再指点一二啊根据楼上几位的回复,我先说一下我的理解,以此为例:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;从左到右:
1、“减号”说明这是个对象方法
2、“(UITableViewCell *)”说明此方法的返回值类型是UITableViewCell的对象
3、第一个tableView,是第一个参数的名称????<<<<<<<此处不确定。
4、接着的“(UITableView *)tableView”,它还是是第一个参数的参数变量??用于指明了此参数的类型??或者是相当与this指针??<<<<<<<此处不确定。
5、“cellForRowAtIndexPath”,根据iPhone SDK源代码来看,这个就是方法名称了。
6、“(NSIndexPath *)indexPath”指明了第二个参数的类型和参数变量(参数名称是否被省略了???不确定。)。以上6条理解,请大家指点~~~!
因为貌似在什么地方有看到过“方法tableView:cellForRowAtIndexPath”这样的说法。
冒号后面的肯定是参数;空格后面的,表示方法名的另外一部分我也可以写成
-(void)seta:(NSString)a setb:(NSString)b setc:(NSString)c;
反正穿进去就三个参数a,b,c。
不好意思 我觉得你说的有问题
第一个方法名称是tableView: numberOfRowsInSection:
第二个是:tableView: cellForRowAtIndexPath:
方法名是带冒号的.另外我回答一下楼主的问题
以上两种方法都是UITabelView中很常用的代理方法
以这个为例
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
1.它的返回值为UITableViewCell类型的对象,冒号后面带的是参数类型和参数.
2.这是一个绘制cell的方法
另外实现协议时,方法名需要相同.