我在Xcode 8 beta中为tableView编写了代码,然后尝试在实际的Xcode 7中执行。除了UITableViewDataSource问题,下面的代码看起来是正确的。编者说:
类型“SettingsVC”不符合协议“UITableViewDataSource”
很奇怪,因为我认为我已经实现了所有必需的方法。
class SettingsVC: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var chooseTable: UITableView!
var tableArray = [String]()
override func viewDidLoad() {
tableArray = ["1", "2", "3", "4", "5"]
}
override func viewDidAppear(animated: Bool) {
chooseTable.reloadData()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableArray.count
}
func tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(tableArray[indexPath.item], forIndexPath: indexPath)
cell.textLabel?.text = tableArray[indexPath.row]
return cell
}
}
在Xcode 8中,一切都很好。我在其他4个ViewControllers中看到的问题与我使用表的情况相同。
最佳答案
Xcode 7不支持swift 3.0,您使用的swift3.0方法用于UITableViewDataSource
替换:
func tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell {
使用:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
干杯
关于swift - UITableViewDataSource希望获得,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38145269/