gpt4 book ai didi

iphone - 理解 objective-c 中的方法

转载 作者:搜寻专家 更新时间:2023-10-30 19:59:21 25 4
gpt4 key购买 nike

例如我们在tableview中使用这个方法

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 16;
}

我想了解我们不会在任何地方调用此方法,但应用程序会读取此值,情况如何?有很多这样的方法我们没有调用。

最佳答案

您的对象已在某处设置为 UITableView 的数据源。最有可能的是,通过在 InterfaceBuilder 中建立连接,尽管通过设置 UITableView 的 dataSource 属性在代码中直接这样做:

- (void) setUpMyJunkMan
{
myTableView.dataSource = self;
}

一旦您将您的对象设置为数据源, TableView 将根据需要调用该方法来确定它需要绘制什么或它需要如何响应事件。

您的对象需要实现 UITableViewDataSource 协议(protocol)(但是,如果您通过 InterfaceBuilder 连接数据源,如果您不这样做,可能不会有任何提示——它更像是一个编译时间验证比运行时验证)。

如果您查看UITableViewDataSource 的声明,您会发现许多方法都是@optional。其余为@required;您必须实现它们才能履行协议(protocol)的约定。

这是数据源和委托(delegate)之间的主要区别。委托(delegate)可以选择性地实现任何声明的方法。数据源在两个对象之间创建了一种更正式的关系,其中一些方法必须被实现。

关于iphone - 理解 objective-c 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1327724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com