Swift 报错 Type 'xx' does not conform to protocol 'UITableViewDataSource'

96
南国青天
2015.09.17 21:18* 字数 99

Swift中当你设置完UITableView的代理和数据源

class ViewController: UIViewController,MAMapViewDelegate,AMapSearchDelegate,
UITableViewDelegate,UITableViewDataSource {

 lazy var tableView: UITableView! = {
        var tableView = UITableView(frame: CGRectZero, style: UITableViewStyle.Grouped)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "Cell")
        return tableView
    }()

}

并且你也添加了UITableViewSource这个协议, 但仍然报下面的错误.
Type 'ViewController' does not conform to protocol 'UITableViewDataSource'

Why ?

因为你没有实现协议里面的Requred 方法, 所以提示抱错, 不过个人觉得这样的报错提示很不友好...

DAD132FC-38A9-491E-8C97-5EB40267DF59.png

最后你的代码改成如下, 报错就会消失.

class ViewController: UIViewController,MAMapViewDelegate,AMapSearchDelegate,
UITableViewDelegate,UITableViewDataSource {

   lazy var tableView: UITableView! = {
        var tableView = UITableView(frame: CGRectZero, style: UITableViewStyle.Grouped)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "Cell")
        return tableView
    }()
   //MARK: UITableViewDelegate
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
        return cell
    }


}
Objective-C Developer
Web note ad 1