我正在阅读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;
}
我没有在任何地方调用这些方法。但是,输出会在运行时发生变化。怎么样?这些最重要的方法是什么?
答案 0 :(得分:4)
设置时调用了这些函数:
yourTableView.delegate = self;
yourTableView.dataSource = self;
或将yourTableView
与File's owner
文件中的.xib
相关联。
否则,UIView
会显示默认UITableView
。
答案 1 :(得分:4)
如果我正确地提出你的问题,“你没有打电话给某些方法,但他们会被运行”
这是真的,在Xcode
你没有调用某些方法,它们将自动运行。当您在.xib
中放置一个对象时,会有一些相关的方法将在您的项目上运行。
如果你想骑它们,你可以简单地删除它们。
答案 2 :(得分:2)
不,它们不是重写方法。 放一个断点,去调试,你会看到谁在调用上面的方法。
请注意,如果您返回1
,则始终会调用celForRowAtIndexPath
。因为你刚才说有一个元素。
顺便说一下,这些方法被“自动”调用,因为您已将控制器设置为datasource
的{{1}}。
答案 3 :(得分:2)
这些是表视图委托方法,它们会在你设置
时被自动调用TableViewVar.delegate = self;
TableViewVar.dataSource = self;