我如何阅读Objective C方法

时间:2010-08-03 03:28:11

标签: objective-c

我认为理解编程时遇到的最大问题是理解特定方法的作用。例如

- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

当我查看上面的方法时,我知道它返回一个布尔值,并且该方法接收到以下内容。

  1. NSTableView的
  2. NSTableColumn
  3. NSInteger的
  4. 但是,我不明白我需要提供什么才能正确使用该方法。 我只返回一个布尔值吗?

3 个答案:

答案 0 :(得分:1)

当表需要知道某个行和列是否可以编辑时,此方法将由您的委托上的表(或某些东西)调用(您正在实现此方法的类)。您只需返回YESNO即可表明是否要对其进行修改。

这是一个示例实现:

-(BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
    return NO;
}

这意味着永远不能编辑该表。

像这样的更复杂的实现只允许第一行可编辑:

-(BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
    if (rowIndex == 0)
        return YES;
    else 
        return NO;
    //This can be shortened to:
    //return rowIndex == 0;
}

答案 1 :(得分:1)

归结为一句话:代码告诉你如何,评论告诉你原因。

如果您正在编写方法,则需要知道为什么要使用该方法并相应地记录它,即a.k.a。注释。如果你重写了一个方法,那么你希望该方法的生产者能够记录该方法的作用。

如果你在没有一点编程背景的情况下进入iPhone开发,你至少应该阅读Introduction to The Objective-C Programming Language。如果要查找特定方法在代码中的作用,可以始终右键单击方法名称并选择“在文档中查找文本”以阅读有关它的更多信息。

答案 2 :(得分:0)

方法tableView的名称:shouldEditTableColumn:row:应该为您提供有关在表视图中编辑行和列的线索。你可能会猜到,因为它返回一个布尔值,它被调用以确定一个表视图应该编辑提供的列的提供行。然而,这只是一个猜测,所以在这一点上(如果我昨天没有使用该方法,因此确切知道它是什么)我会开始谷歌搜索(或使用Xcode搜索,如果我有权访问xcode的)。

Googling Cocoa文档的一个有用提示是仅在网站上搜索:developer.apple.com,所以我们将尝试site:developer.apple.com tableView:shouldEditTableColumn:row:。在这种情况下,最热门的是NSTableViewDelegate这是我们想要的。