你怎么知道什么方法用于任务?

时间:2014-10-07 06:45:25

标签: objective-c arrays

我正在学习OS-X的Objective-C Cocoa编程,以及一般的基于对象的编程,所以我在这里是一个很大的新手,所以我的问题有点笼统,我的猜测就是答案就是&# 34;经验&#34 ;;但是,我很好奇是否有一些知识途径来理解各种类中哪些方法最好或者可能需要完成任务。

例如,在编程指南中,我被指示创建基于文档的程序,文档类包含用于存储数据的数组,以下方法绑定到按钮以在数组中创建新条目: / p>

- (IBAction)insertItem:(id)sender {
    if (!theItems) {
        theItems = [NSMutableArray array];
    }

    [theItems addObject:@"Double-click to edit."];

    [theTableView reloadData];

    [self updateChangeCount:NSChangeDone];
}

阵列是" theItems"并且它的数据正在TableView对象中呈现。我知道这里的步骤在数组中添加了一个新字符串,然后刷新表格以显示它,然后将文档设置为未保存状态。

我没有得到的是如何知道这些具体的步骤和方法是必需的。直觉上似乎只会向数组中添加项目,这就是将新值简单地显示在数据源为数据源的表视图中所需要的所有内容,那么如何才能知道tableView需要使用" reloadData"进行刷新。呼叫?我可以看到有人(我自己)通过反复试验来解决这个问题,但是在XCode或其他地方有一些快速资源或指南(即一些快速流程图),表明这将是一个表视图,这必须是一个显示新条目所需的操作?

如果我查看Apple的NSTableView类引用,它会在概述中声明您修改数据源中的值并允许更改反映在表视图中#34;这表明视图会自动更新,因此需要调用" reloadData"在视图上看起来有点模糊。

2 个答案:

答案 0 :(得分:1)

熟悉,研究文档并可能阅读一些好书就是答案。例如,在您引用的文档中(强调我的)

  

您应该修改数据源中的值,并允许更改反映在表格视图中

应该做这两件事。如果您希望它自动发生"请查看bindings,它使用了其他几个Cocoa功能,您现在还不能理解为您执行表数据源的操作。我建议在将控制权移交给绑定之前手动了解手动情况,这样您就有机会了解出现问题的时间。

除了查看表视图文档外,还需要研究单元格,委托和数据源引用。所有这些对象协同工作,为您提供功能正常的表视图。

答案 1 :(得分:1)

寻找指南。在online class reference for NSTableView中,顶部有一个名为“Companion Guides”的部分。对于NSTableView,它会列出Table View Programming Guide for Mac。 (在预发布10.10文档中,指南列在左侧边栏的相关文档下。)

我可以发誓Xcode的文档窗口中提供了相同的信息,虽然有点隐藏在“更多相关项目”伪链接后面,但是当我现在检查时,{{1}中的任何地方都没有链接指南类引用。这是一个可怕的疏忽。

您还可以浏览或搜索Guides section of the developer library