请看下面我的代码。我收到错误“类型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/