在Xcode类型“ViewController”中获取错误不符合协议“UITableViewDataSource”

时间:2015-06-24 06:03:16

标签: ios xcode swift uitableview

我正在尝试按照表格视图教程,但我在我的类声明行中出现错误,其中说:“type”ViewController“不符合协议”UITableViewDataSource“”这里是我的代码:< / p>

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    private let dwarves = ["Sleepy", "Sneezy", "Bashful", "Happy", "Doc", "Grumpy", "Dopey", "Thorin", "Dorin", "Nori", "Ori", "Balin", "Dwalin", "Fili", "Kili", "Oin", "Gloin", "Bifur", "Bofur", "Bombur"]

    let simpleTableIdentifier = "SimpleTableIdentifier"

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier(simpleTableIdentifier) as? UITableViewCell
        if cell == nil {
            cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: simpleTableIdentifier)
        }

        cell!.textLabel!.text = dwarves[indexPath.row]
        return cell!
    }


}

3 个答案:

答案 0 :(得分:3)

你错过了功能tableView(tableView: UITableView, numberOfRowsInSection secion: Int) -> Int {}

这对于tableview来说是必要的。

所以只需将其添加到您的代码中:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return count(dwarves)
}

答案 1 :(得分:0)

您缺少数据源协议所需的方法: tableView:numberOfRowsInSection:

请参阅:$sum

答案 2 :(得分:0)

UITableViewDataSource有两个必需的方法:

tableView:cellForRowAtIndexPath:

tableView:numberOfRowsInSection:

两者都需要实施。

你错过了第二个。

您可以在此处找到有关UITableViewDataSource的更多信息:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDataSource_Protocol/