我目前正在学习Swift并且刚刚实现了我的第一张桌子。 要使用动态数据填充该表,必须实现从TableViewController扩展的类。
现在我想知道为什么有些配置方法只有名称tableView,例如:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool
为什么Apple没有给他们这样的名字:
override func getNumberOfRowsInSection(tableView: UITableView, section: Int) -> Int
override func getCellForRowAtIndexPath(tableView: UITableView, indexPath: NSIndexPath) -> UITableViewCell
override func canEditRowAtIndexPath(tableView: UITableView, indexPath: NSIndexPath) -> Bool
我确定这是有正当理由的。
答案 0 :(得分:4)
接受的答案是错误的。
由于这些方法是委托/数据源方法,因此可以将它们附加到多个表视图。因此,如果您的视图有两个表视图,则它们都可以具有与其数据源相同的方法。因此,需要引用调用该方法的tableview,因此您可以执行以下操作:
if tableView == myCoolYellowTableView { do stuff }
else if tableView == myShittyBlueTable { do some other stuff }
答案 1 :(得分:-5)
我同意@beyowulf的答案,这在技术上是正确的。
Objective-C因其是一种不稳定/粗糙的语言而闻名。使用TableView
,用户可以快速搜索与UITableViewController
相关的每个方法,而不是输入function
名称来挖掘一系列函数,以找到专门用于UITableViewController
的函数}。
例如,如果您只需输入cellForItemAtIndexPath
,就会找到UICollectionViewController
和UITableViewController
的功能。但如果您先键入tableView
,则只会找到UITableViewController
的函数。
它更容易这样,因此他们为什么这样建造它。
希望能够解决它。