无法在Swift中的UITableView上调用“registerClass”

时间:2015-05-19 17:59:15

标签: ios objective-c uitableview swift

Swift的新手,这对Objective-C来说非常适合我。不确定这是否是语法问题,或者我的项目设置不正确。

首先,这是我看到的错误(在JobsViewController的第5行,以self.tableView.registerClass开头的行):

Cannot invoke 'registerClass' with an argument list of type '(UITableViewCell.Type, forCellReuseIdentifier: String)'

JobsViewController

class JobsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

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

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

    func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {

    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    }
}

Google一直没有太大帮助,希望得到一些帮助!

6 个答案:

答案 0 :(得分:3)

Swift 3

中正常工作
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")

答案 1 :(得分:2)

 var cell : UITableViewCell = UITableViewCell()

 feedTableView.registerClass(cell.classForCoder, forCellReuseIdentifier: "cellidentifier")

尝试使用以上代码行

答案 2 :(得分:1)

雨燕5

请使用like

self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")

答案 3 :(得分:0)

看起来您还没有在此表的故事板中设置自定义类 - 类名。 您需要从下拉列表中选择JobsViewController。 然后你会得到

@IBOutlet weak var tableView: UITableView!

代码。

答案 4 :(得分:0)

 override func viewDidLoad() {
            super.viewDidLoad()
            self.tableView.delegate = self 
            self.tableView.dataSource = self
            self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")
        }

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: "Cell")
      return cell
    }

答案 5 :(得分:0)

对于Swift 4+,在包含列表的ViewController的ViewDidLoad中放置类似

self.listView.register(UITableView.self, forCellReuseIdentifier: "CellItentifier")