Confusion with method declaration
Possible Duplicate:
Method Syntax in Objective C
我对iPhone开发很陌生,我对使用X代码开发iPhone的方法声明感到困惑
请帮助我确定方法的名称。
tableView或willSelectRowAtIndexPath。
请解释一下你是如何认识它的。事先谢谢。
1 2 3 4 5 6
| -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
if (row == 0) return nil;
return indexPath;
} |
方法名是– tableView:willSelectRowAtIndexPath:,您可以通过按住alt/option键并单击要获取信息的方法,在xcode上很容易地知道它。
编辑:
– tableView:willSelectRowAtIndexPath:是一个方法"签名/名称",它在代码中声明为
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
参数
tableView:类型为UITableView。
通知代理即将进行的选择的表视图对象。
indexPath型:NSIndexPath型
在TableView中定位行的索引路径。
Return Value类型为nsindxpath
确定或更改所选行的索引路径对象。如果要选择其他单元格,请返回indexpath以外的nsindxpath对象。如果不希望选定行,则返回nil。
——如这里所见
- 谢谢你的回答,但是我还是困惑了一个方法名称,比如"TabelVIEW:WelStReStudioWrimeXPATH"是ObjuleC中的一个有效名称,因为很多语言如Java、C、C++不允许任何特殊的字符,比如In方法签名声明。
- 目的C消息发送不使用Java/C/C++等的语法和规则,类似SMALLATTS消息。这些名称是由多个部分组成的,并且在名称为C++之后,在括号中没有指定参数,而是用名称交错。注意,考虑它们的方法名甚至有点不精确。技术上讲,方法没有名称,它们是响应消息而执行的无名称代码。这些名称是消息的名称。但实际上,考虑它们的方法名是很常见的。
方法签名是tableView:willSelectRowAtIndexPath:。在这里,您可以阅读目标C中的方法名称-http://cocoawithlove.com/2009/06/method-names-in-objective-c.html如果您不确定原因和发生了什么,请询问更多信息。
- (+ 1),但是…您可能会认为,考虑到uikit的上下文,更具体的方法名是-[UITableViewDelegate tableView:willSelectRowAtIndexPath:]。我知道这是吹毛求疵,但知道一个方法属于哪个类通常很有用。当然,相反的论点是,我们不知道这是否是我所指的uikit方法,或者是OP自己的设计。
- 是的,您是对的,但是如果我们从选择器的角度来看方法名,它是正确的。比这更复杂,但是…:)
方法名称为-表视图:将选择行索引路径:
":"后面的单词在"space"之前是参数
()中的字是参数类型
ps:当然,第一个()是返回类型