我正在为杂志查看器设计API接口。像iGizmo(适用于iPad)。显示杂志的视图与TableView非常相似。因为人们可以将文章视为部分和页面作为单元格。
因此,我想公开DataSource&以与UITableView相同的方式进行委托。但是我不完全确定苹果为什么设计TableView委托/ DataSource,它总是在每个方法中提供TableView作为参数。
我试图让它合理化,我没有找到任何这样的api设计的好借口。
我正考虑在我的API中省略tableView
/ magazineView
参数。
您认为这种API设计背后有什么好理由吗?
编写类似下面的方法会不会更容易,更清晰?
– cellForRowAtIndexPath:
– numberOfSections
– numberOfRowsInSection:
– sectionIndexTitles
– sectionForSectionIndexTitle:atIndex:
– titleForHeaderInSection:
– titleForFooterInSection:
答案 0 :(得分:2)
有趣的问题。虽然这是猜测,但我怀疑它在那里,因此单个数据源类可以是具有不同要求的多个表视图的委托。 (即:它可以检查提供的tableView并做出相应的响应。)
因此,如果您没有预料到此要求,则很可能会从方法签名中省略等效参数。
然后,如果您可能想要访问“调用”magazineView,那么您可以将参数保留在那里 - 这并不是因为传递指针是非常低效的资源。