定义的方法,未调用,仍然是应用程序更改

时间:2012-06-26 09:37:20

标签: objective-c xcode cocoa

我正在阅读iOS教程,我有一个.h和.m文件。在.m文件中,我写了一些方法,比如 -

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

,或者

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChecklistItem"];
    return cell;
}

我没有在任何地方调用这些方法。但是,输出会在运行时发生变化。怎么样?这些最重要的方法是什么?

4 个答案:

答案 0 :(得分:4)

设置时调用了这些函数:

yourTableView.delegate = self;
yourTableView.dataSource = self;

或将yourTableViewFile's owner文件中的.xib相关联。 否则,UIView会显示默认UITableView

答案 1 :(得分:4)

如果我正确地提出你的问题,“你没有打电话给某些方法,但他们会被运行” 这是真的,在Xcode你没有调用某些方法,它们将自动运行。当您在.xib中放置一个对象时,会有一些相关的方法将在您的项目上运行。 如果你想骑它们,你可以简单地删除它们。

答案 2 :(得分:2)

不,它们不是重写方法。 放一个断点,去调试,你会看到谁在调用上面的方法。

请注意,如果您返回1,则始终会调用celForRowAtIndexPath。因为你刚才说有一个元素。

顺便说一下,这些方法被“自动”调用,因为您已将控制器设置为datasource的{​​{1}}。

答案 3 :(得分:2)

这些是表视图委托方法,它们会在你设置

时被自动调用
TableViewVar.delegate = self;
TableViewVar.dataSource = self;