我已经搜索并得到了这些问题,解决了同样的问题。
但是,我没有在答案中提到任何错误。
这是我的代码:
class RightViewController: ParentViewController, UITableViewDelegate, UITableViewDataSource {
//properties
var itemsArray: [String] = ["set", "git"]
@IBOutlet var tableView:UITableView! = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
//register cell
self.tableView!.registerClass(MenuCell.self, forCellReuseIdentifier: "MenuCell")
tableView!.rowHeight = UITableViewAutomaticDimension
tableView!.estimatedRowHeight = 140
tableView!.delegate = self
tableView!.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: <TableViewDataSource>
func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return itemsArray.count
}
func tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MenuCell", forIndexPath: indexPath) as! MenuCell
if (indexPath as NSIndexPath).row < itemsArray.count {
let option = itemsArray[(indexPath as NSIndexPath).row]
cell.titleLabel?.text = option
}
return cell
}
我已经实现了所有必需的协议方法,它们都在我班级的范围内。我仍然得到这个恼人的错误。我的代码中的ParentViewController
实际上是另一个UIViewController
答案 0 :(得分:3)
问题是您使用的是较低版本的swift
而不是swift 3.0
,方法cellForRowAt indexPath
适用于swift 3.0,因此您需要使用此cellForRowAtIndexPath
代替那。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MenuCell", forIndexPath: indexPath) as! MenuCell
if (indexPath as NSIndexPath).row < itemsArray.count {
let option = itemsArray[(indexPath as NSIndexPath).row]
cell.titleLabel?.text = option
}
return cell
}