自定义了一个TableViewCell 但是会报错,关于Identifier

创建了一个UItableViewCell的类,也创建了xib文件。在UIViewController里面写

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
//        self.tableView?.registerClass(TheFirstTableViewCell.self, forCellReuseIdentifier: "mycellID")

        let cell = tableView.dequeueReusableCellWithIdentifier("mycellID", forIndexPath: indexPath) as! TheFirstTableViewCell
//        cell = NSBundle.mainBundle().loadNibNamed("mycellID", owner: self, options: nil).last as! TheFirstTableViewCell
        cell.imageView1.image = UIImage(named: "\(indexPath.row + 7)")
        cell.label1.text = dataArray![indexPath.row] as? String 
        return cell
    }

但是会报错:reason: 'unable to dequeue a cell with identifier mycellID - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

请问大神,这是什么问题。不胜感激!!

阅读 5.1k
4 个回答

registerCell要写到viewDidLoad里面

使用 registerNib(_ nib: UINib?, forCellReuseIdentifier identifier: String)

之前使用OC创建cell得时候,遇到过这个运行时错误,后来把字符串标识"myCellID"单独写个强引用的变量,再运行就好啦!猜测可能是一个是读取指针地址,一个是随机使用堆地址

用xib的话 应该是这里少了 图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题