UITableView在xCode 6.1 IOS 8中运行错误

时间:2014-12-21 07:43:23

标签: ios uitableview

请参阅下面的代码,在Xcode 6.1中运行IOS 8失败,它报告错误如下: 输入" ViewController"不符合Protocol" UITableViewDataSource"

任何人都可以帮忙看看问题是什么?谢谢!

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    var tableView = UITableView()
    var items: NSMutableArray = ["row 0","row 1","row 2","row 3","row 4"]


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view, typically from a nib.


    tableView.frame = CGRectMake(10, 10, 300, 530)
    tableView.backgroundColor = UIColor(red: 90/255, green: 31/255, blue: 10/255, alpha: 0.2)
 //   tableView.style = UITableViewStyle.Grouped
    tableView.rowHeight = 50
    tableView.separatorColor = UIColor.blueColor()
    tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine

    //self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

   // tableView.delegate = self

   // tableView.dataSource = self


   self.view.addSubview(tableView)


}
//UITableViewDataSource
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.items.count
}

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    //println("Hello \(indexPath.row)")
   var cell = tableView.dequeueReusableCellWithIdentifier("my cell id") as? UITableViewCell

    if (cell == nil) {

        cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "my cell id")
    }

    //cell.textLabel?.text = listOfViewControllers[indexPath.row]
    //cell!.textLabel?.text = items[indexPath.row] as String
    //var s = items.objectAtIndex(indexPath.row) as? String
    var s = items.objectAtIndex(indexPath.row) as String
    cell!.textLabel?.text = s
    return cell
}

//UITableViewDelegate
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
}

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


}   

1 个答案:

答案 0 :(得分:0)

问题在于此方法签名,它与UITableViewDataSource

中定义的方法不相似
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!

将其更改为:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell