请看下面我的代码。我收到错误“类型ViewController不符合协议UITableViewDataSource”。我已经研究过这个错误,其他的回答是UITableViewDataSource需要某些函数,但是我已经包含了这些函数。还有什么问题吗?我正在使用Xcode 7.3。

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var zipCodeText: UITextField!
    @IBOutlet weak var zipTable: UITableView!

    var zipArray: [String] = []


    override func viewDidLoad() {
        super.viewDidLoad()
        self.zipTable.delegate = self
        self.zipTable.dataSource = self
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func addZipButton(sender: UIButton) {
        zipArray.append(zipCodeText.text!)
        zipTable.beginUpdates()
        zipTable.insertRowsAtIndexPaths([
            NSIndexPath(forRow: zipArray.count-1, inSection: 0)
            ], withRowAnimation: .Automatic)
        zipTable.endUpdates()
    }

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) {
        let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell")!
        cell.textLabel?.text = zipCodeText.text
    }

}

最佳答案

您不能在tableView(_:cellForRowAtIndexPath:)中返回单元格。
试试这样的:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell")!
    cell.textLabel?.text = zipCodeText.text
    // Make sure to include the return statement
    return cell
}

在文档中,您将找到有关返回值的信息:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDataSource_Protocol/#//apple_ref/occ/intfm/UITableViewDataSource/tableView:cellForRowAtIndexPath

关于ios - 收到错误“Type ViewController不符合协议(protocol)'UITableViewDataSource…”,即使我具有必需的功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37310846/

10-08 20:59