2012-08-16 124 views
0

可能重复:
Method Syntax in Objective C混淆方法声明

我是很新的iPhone开发和使用我的X代码

感到困惑的方法声明iPhone开发

请帮我确定这里的方法名称是什么。

tableViewwillSelectRowAtIndexPath

请解释一下你是怎么认识它。提前致谢。

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    NSUInteger row = [indexPath row]; 
    if (row == 0) return nil; 
    return indexPath; 
} 

回答

1

方法签名是tableView:willSelectRowAtIndexPath:。在这里,您可以阅读Objective C中的方法名称 - http://cocoawithlove.com/2009/06/method-names-in-objective-c.html询问更多,如果您不确定原因和发生的情况。

+0

(+1),但是......你可能会说,鉴于UIKit中的情况下,更具体的方法名是' - [的UITableViewDelegate的tableView:willSelectRowAtIndexPath:]'。我知道这是一个挑剔的问题,但知道某个方法属于哪个类通常很有用。当然,相反的观点是,我们不知道这是我所指的UIKit方法还是OP自己的设计。 – idz 2012-08-16 08:33:59

+0

是的,你说得对,但是如果我们从选择的角度来看方法名称,那是对的。它比这更复杂,但是... :) – robertvojta 2012-08-16 08:40:53

-1

方法名是 -tableView:willSelectRowAtIndexPath:

后的词语 ':' 之前 '空间' 是参数

字内的()是参数类型

PS:当然第一个()是返回类型

1

方法名称是– tableView:willSelectRowAtIndexPath:您可以通过按住alt/option键轻松知道它在Xcode上,然后单击想要获取信息的方法。

编辑:

– tableView:willSelectRowAtIndexPath:是一种方法 “签名/名称”,它被声明在代码

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath

参数

tableView类型是UITableView

通知委托人即将进行选择的表视图对象。

indexPath类型是NSIndexPath

索引路径定位在的tableView的行。

Return Value()类型是NSIndexPath

,确认或改变所选择的行的索引路径中的物体。如果您希望选择另一个单元格,则返回indexPath之外的其他NSIndexPath对象。如果您不想选择该行,则返回nil。

- 所看到here

+0

感谢您的回答,但我仍然困惑于像“tableView:willSelectRowAtIndexPath”这样的方法名称在objective-c中是一个有效的名称,因为许多语言如java,C,在方法签名声明中,C++不允许使用任何特殊字符。 – 2012-08-16 08:48:49

+0

目标C消息发送不使用java/C/C++的语法和规则等。它类似于Smalltalk消息。这些名称由多个部分组成,参数不在C++中的名称后面的括号中指定,而是与名称交替显示。请注意,将它们视为方法名称甚至稍微不准确。技术上,方法没有名称,它们是响应消息而执行的无名代码。这些名称是消息的名称。但实际上将它们视为方法名称是很常见的。 – 2012-08-16 19:55:15