UITableViewDataSource设计的基本原理

时间:2011-01-05 18:13:26

标签: objective-c cocoa-touch

我正在为杂志查看器设计API接口。像iGizmo(适用于iPad)。显示杂志的视图与TableView非常相似。因为人们可以将文章视为部分和页面作为单元格。

因此,我想公开DataSource&以与UITableView相同的方式进行委托。但是我不完全确定苹果为什么设计TableView委托/ DataSource,它总是在每个方法中提供TableView作为参数。

我试图让它合理化,我没有找到任何这样的api设计的好借口。 我正考虑在我的API中省略tableView / magazineView参数。

您认为这种API设计背后有什么好理由吗?

编写类似下面的方法会不会更容易,更清晰?

– cellForRowAtIndexPath: 
– numberOfSections
– numberOfRowsInSection:
– sectionIndexTitles
– sectionForSectionIndexTitle:atIndex:
– titleForHeaderInSection:
– titleForFooterInSection:

1 个答案:

答案 0 :(得分:2)

有趣的问题。虽然这是猜测,但我怀疑它在那里,因此单个数据源类可以是具有不同要求的多个表视图的委托。 (即:它可以检查提供的tableView并做出相应的响应。)

因此,如果您没有预料到此要求,则很可能会从方法签名中省略等效参数。

然后,如果您可能想要访问“调用”magazineView,那么您可以将参数保留在那里 - 这并不是因为传递指针是非常低效的资源。