以下方法声明描述了什么?
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我不明白的是对方法结果的描述:
(UITableViewCell *)tableView:(UITableView *)tableView
它应该只返回一个结果,但显然它返回两个。怎么样?
答案 0 :(得分:3)
实际上只有一个返回值(结果)。
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
C ++ / Java中的将是这样的
UITableViewCell * getTableViewCellForRowAtIndexPath(UITableView *tableView, NSIndexPath *indexPath)
Obj-C中的整个方法名称是-tableView:cellForRowAtIndexPath:
。 Obj-C决定使用与句子类似的方法名称。参数就像那句话中的单词。
另请注意,我们通常不会在方法名称的开头使用get
。
在这种情况下,混淆是可以理解的,因为方法名称不能被理解为句子。
答案 1 :(得分:0)
如果你是初学者,那就没关系。看,你永远不能吃一个字节的披萨,你把它分成小块,以便你可以轻松吃它。
Objective-C已经实现了同样的事实。
考虑一个简单的案例:
假设我们在常规C中定义一个带有5个参数的方法,并且它添加前两个,第一个和第二个参数的结果与第三个参数相乘,其结果除以第4个参数,最后,之前的结果被添加到第五个参数中。
以下是该功能的定义:
float aLittleComplexFunction(int first, int second, int third, int fourth, int fifth) {
return ((((float)first + second) * third ) / fourth ) + fifth;
}
现在,请注意我不能提出一个好的功能名称,因为它很难。像addTwoNumbersAndThenMultiplyAndThenDivideAndThenAdd
这样的函数名称会有点过分。
现在,谈到Objective-C,它分为以下小部分:
float addNumber:(int)first into:(int)second multiplyWith:(int)third divideWith:(int)fourth addWith:(int)fifth {
return ((((float)first + second) * third ) / fourth ) + fifth;
}
你问的问题也是如此。请记住,在Objective-C中,函数名称是分开的,每个部分都带有它的相关参数,总体上使得更容易了解函数的实际目的。
你可能觉得很难开始使用它,但是一旦你这样做,你就会讨厌典型的C方式。