创建了一个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'
请问大神,这是什么问题。不胜感激!!
registerCell要写到viewDidLoad里面
使用 registerNib(_ nib: UINib?, forCellReuseIdentifier identifier: String)
用xib的话 应该是这里少了
之前使用OC创建cell得时候,遇到过这个运行时错误,后来把字符串标识"myCellID"单独写个强引用的变量,再运行就好啦!猜测可能是一个是读取指针地址,一个是随机使用堆地址