斯坦福cs193p 2011秋季课程在第9讲中犯了错误?

时间:2012-08-14 03:55:12

标签: ios cs193p

在第9讲中,老师说numberOfSectionsInTableView:方法默认返回1,但是当我创建自己的项目时,我发现它默认返回0,这使得我的表视图单元格消失了!我发现问题所在并通过使numberOfSectionsInTableView:返回1来解决问题。那么,这意味着斯坦福犯了一个错误?

当我在.m文件中添加了UITableViewController的新子类时,Xcode生成了以下代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 0;
}

我顺便使用Xcode 4.3.3 ......

3 个答案:

答案 0 :(得分:6)

您误解了默认值的含义。当苹果或老师或某人提到方法的默认返回值是某些东西时,则意味着无论何时该方法未实现,它都会以这种方式运行。

当您编写自己的方法时,返回的值为0.如果您使用模板,那么该模板将覆盖该方法以将其设置为0.如果您想要默认行为,只需删除该方法。

这种委托方法在大多数情况下都有默认值。控制单击头文件上的Delegate实现,您将看到@Optional方法,这些方法是大多数时候都具有默认值的方法。

答案 1 :(得分:1)

我相信“默认”是指,如果您的UITableViewDataSource未实现numberOfSectionsInTableView:,则假设值为1。 Xcode模板可能包含上面的代码(返回0),但这与框架的默认值不同。

答案 2 :(得分:0)

我们的斯坦福朋友是对的,我很害怕。默认值为1.我很少包含此方法。只是为了确定,我通过从我正在处理的应用程序中删除方法来测试它,当然,只有1个部分。我已经开发了从1.0版到当前版本的应用程序。

确保您的代理人设置为正确的班级。并确保您的xib具有文件所有者的正确类名。那个人偶尔会找我。